티스토리 뷰

programming/Scripts

python for ssh

Jacob_baek 2012. 7. 20. 13:50


paramiko feature

- paramiko는 platform에 독립적이다.

- ansible에서 사용되고 있다.


Linux 별 설치

ubuntu 설치는 apt-get 를 통해 설치할 수 있다.

- sudo apt-get install python-paramiko

CentOS 설치는 아래와 같다.

- sudo yum install python-paramiko


기본적인 코드는 다음과 같다.

import paramiko def main(): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('127.0.0.1', port=22, username='test', password='test123') ## ssh.connect('192.168.100.100', port=22, username='heat-admin', key_filename='/home/stack/.ssh/id_rsa') ## 위 sample은 ssh key를 사용한 접속시 사용될 수 있는 sample code 이다.(openstack의 tripleo를 사용하는 경우) paramiko.util.log_to_file("/tmp/log_ssh_file") ## paramiko를 통한 ssh 접속에 대한 로그를 생성한다. ## scp와 같은 file 전송이 필요한 경우가 있다. sftp = ssh.open_sftp() try: sftp.stat('/home/stack/dest_file.py') except IOError: sftp.put('src_file', 'dest_file') print stdout.read() stderr, stdout, stdin = ssh.exec_command("make directory1") ## 다수의 명령을 입력하는 또 다른 방법 ssh.close() if __name__ == '__main__': main()

다양한 명령어를 사용하기 위해서는 thread생성을 통한 ssh의 channel session을 유지시켜줘야 한다.


다수의 command를 입력하도록 하기 위해서는 

channel


참고로 eclipse에서 추가할 경우 library path를 지정해 주어야 한다.

 

Windows


아래 사이트에서  PyCrypto 를 다운로드 받아 설치한다.

http://www.voidspace.org.uk/python/modules.shtml#pycrypto

 

아래 사이트에서 paramiko 를 다운로드 받아 설치한다.

https://github.com/paramiko/paramiko/

 

설치는 

python setup.py build

python setup.py install

명령을 사용하면된다.

한번 command가 실행되면 세션이 종료된다. 

 

참고사이트

http://www.lag.net/paramiko/

http://www.lag.net/paramiko/docs/ (라이브러리 모음)

http://jessenoller.com/blog/2009/02/05/ssh-programming-with-paramiko-completely-different (상세설명)

http://stackoverflow.com/questions/6203653/how-do-you-execute-multiple-commands-in-a-single-session-in-paramiko-python

- http://segfault.in/2010/03/paramiko-ssh-and-sftp-with-python/

http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/

'programming > Scripts' 카테고리의 다른 글

powershell  (0) 2019.08.14
wsgi with apache  (0) 2016.07.20
parsing xml  (0) 2013.07.12
댓글
댓글쓰기 폼