Python ssh 프로토콜 paramiko 라이브러리 알아보기
Python ssh 프로토콜 paramiko 라이브러리 알아보기
오늘은 Python으로 ssh2 프로토콜이 구현된 paramiko 패키지에 대하여 알아보려 합니다.
paramiko 설치
우선 virtualenv로 파이썬 환경을 분리해줍니다.
1
pip3 install virtualenv
1
virtualenv -mvenv env
env라는 이름의 가상 환경을 생성합니다.
1
source env/bin/activate
가상환경을 폴더에서 활성화합니다.
1
pip3 install --upgrade pip
1
pip install paramiko
pip로 paramiko를 설치합니다.
ssh 접속
1
2
3
4
from paramiko.py3compat import input
import paramiko
import getpass
import sys
패키지들은 가져옵니다.
1
paramiko.util.log_to_file("logging.log")
로그를 남길 파일을 지정합니다.
1
hostname = input("Host: ")
호스트 이름을 입력 받습니다.
1
2
if len(hostname) == 0:
sys.exit(1)
만약 호스트 이름으로 입력된 값이 없다면 종료합니다.
1
2
3
if hostname.find(":") >= 0:
hostname, port_str = hostname.split(":")
port = int(port_str)
호스트 이름을 받을 때에 포트 이름도 같이 넣어져 있다면 분리합니다.
1
default_username = getpass.getuser()
환경의 유저 이름을 가져옵니다.
1
2
3
username = input("Username: ")
if len(username) == 0:
username = default_username
유저 이름을 입력받고 못 받는다면, getpass에 의해 받은 기본 유저 이름을 사용합니다.
1
password = getpass.getpass("Password: ")
비밀번호를 입력합니다.
1
client = paramiko.SSHClient()
ssh 클라이언트 객체를 생성합니다.
1
client.load_system_host_keys()
시스템에서 호스트 키를 불러옵니다.
1
client.set_missing_host_key_policy(paramiko.WarningPolicy())
호스트 키가 없을 때에 사용할 정책을 정합니다.
1
client.connect(hostname, port, username, password)
적은 호스트 이름과 포트 그리고 유저 이름과 마지막으로 비밀번호를 가지고 ssh 접속합니다.
1
client.close()
모든 작업이 완료되면 클라이언트 객체를 소멸합니다.
This post is licensed under CC BY 4.0 by the author.