SeouliteLab

파이썬으로 SSH 통신하기: paramiko 라이브러리 활용하기 본문

카테고리 없음

파이썬으로 SSH 통신하기: paramiko 라이브러리 활용하기

Seoulite Lab 2024. 4. 18. 08:11

SSH(Secure Shell)는 네트워크 상에서 안전하게 통신하기 위한 프로토콜로, 원격 서버에 명령을 실행하거나 파일을 전송하는 데 사용됩니다. 파이썬에서는 paramiko 라이브러리를 사용하여 SSH 연결을 설정하고 관리할 수 있습니다. 이를 통해 SSH 통신을 구현하는 다양한 예제를 살펴보겠습니다.

예제 1: SSH로 원격 서버에 접속하기

import paramiko

# SSH 클라이언트 생성
client = paramiko.SSHClient()

# 호스트 키 자동으로 추가
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 서버에 연결
client.connect(hostname='example.com', username='user', password='password')

# 명령 실행
stdin, stdout, stderr = client.exec_command('ls -l')

# 결과 출력
print(stdout.read().decode())

# 연결 종료
client.close()

위 예제는 paramiko를 사용하여 SSH로 원격 서버에 접속하고 명령을 실행하는 방법을 보여줍니다. 클라이언트를 생성한 후, 호스트 키를 자동으로 추가하고 지정된 호스트에 사용자 이름과 비밀번호로 연결합니다. 그런 다음 SSH 세션을 통해 명령을 실행하고 결과를 출력합니다.

예제 2: SSH로 파일 전송하기 (업로드)

import paramiko

# SSH 클라이언트 생성
client = paramiko.SSHClient()

# 호스트 키 자동으로 추가
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 서버에 연결
client.connect(hostname='example.com', username='user', password='password')

# SFTP 클라이언트 생성
sftp = client.open_sftp()

# 파일 업로드
sftp.put('local_file.txt', 'remote_file.txt')

# 연결 종료
sftp.close()
client.close()

위 예제는 paramiko를 사용하여 SSH를 통해 파일을 원격 서버에 전송하는 방법을 보여줍니다. 먼저 SSH 클라이언트를 생성하고 호스트에 연결한 후, SFTP 클라이언트를 열어서 로컬 파일을 원격 서버로 업로드합니다.

예제 3: SSH로 파일 전송하기 (다운로드)

import paramiko

# SSH 클라이언트 생성
client = paramiko.SSHClient()

# 호스트 키 자동으로 추가
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 서버에 연결
client.connect(hostname='example.com', username='user', password='password')

# SFTP 클라이언트 생성
sftp = client.open_sftp()

# 파일 다운로드
sftp.get('remote_file.txt', 'local_file.txt')

# 연결 종료
sftp.close()
client.close()

위 예제는 paramiko를 사용하여 SSH를 통해 원격 서버에서 파일을 다운로드하는 방법을 보여줍니다. SSH 클라이언트를 생성하고 호스트에 연결한 후, SFTP 클라이언트를 열어서 원격 파일을 로컬로 다운로드합니다.

paramiko 라이브러리를 사용하면 파이썬으로 SSH 통신을 간편하게 구현할 수 있습니다.