Python: Paramiko.SSH 遠端連線協議
阿新 • • 發佈:2019-01-09
轉自:
1. 連結方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
方式一: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect("某IP地址",22,"使用者名稱", "口令") 上面的第二行程式碼的作用是允許連線不在know_hosts檔案中的主機。 方式二: ssh = paramiko.Transport((“主機”,”埠”)) ssh.connect(username = “使用者名稱”, password = “口令”) 如果連線遠端主機需要提供金鑰,上面第二行程式碼可改成: ssh.connect(username = “使用者名稱”, password = “口令”, hostkey=”金鑰”) 方式三: ssh = paramiko.SSHClient() #ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) pkey_file='/hmoe/kkk/.ssh/id_rsa' #設定使用者私祕鑰路徑 key=paramiko.RSAKey.from_private_key_file(pkey_file) ssh.connect(host,port,user, pkey=key,timeout=5) |
2. 例項
In [1]: import paramiko In [2]: import sys,os In [3]: host='127.0.0.1' #sys.argv[1] 第一個引數為主機IP In [4]: user='kkk' In [5]: password='123456' In [6]: cmd='ls -l' In [7]: s=paramiko.SSHClient() #繫結例項 In [8]: s.load_system_host_keys() #載入本地host主機檔案 In [9]: s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允許連線不在know_hosts檔案中的主機(可選項) In [10]: s.connect(host,22,user,password,timeout=3) #連結遠端主機 In [11]: stdin,stdout,stderr=s.exec_command(cmd) #一次性的執行命令 In [12]: cmd_result=stdout.read(),stderr.read() #讀取命令結果 In [13]: for i in cmd_result: ....: print i ....: total 328452 drwxrwxr-x 3 kkk kkk 4096 Sep 3 01:54 apache drwxr-xr-x 3 root root 4096 Sep 17 00:14 blog drwxrwxr-x 6 kkk kkk 4096 Sep 21 19:36 ENV -rw-rw-r-- 1 kkk kkk 584 Aug 22 03:28 index.html -rw-r--r-- 1 root root 547 Sep 23 02:48 mping.py drwxrwxr-x 2 kkk kkk 4096 Sep 21 18:32 py3 -rw-r--r-- 1 root root 327 Sep 14 13:17 t.log -rw-rw-r-- 1 kkk kkk 336299008 Sep 14 09:31 ubuntu_apache2.tar
SSH 協議: