1 #!/usr/bin/python 2 #ssh 3 import paramiko 4 import sys,os 5 6 host='127.0.0.1' 7 user = 'whl' 8 password = '123456' 9 10 s = paramiko.SSHClient() # 綁定實例 11 s.load_system_host_keys() # 加載本地HOST主機文件 12 s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允許連接不在know_hosts文件中的主機 13 s.connect(host,22,user,password,timeout=5) # 連接遠程主機 14 while True: 15 cmd=raw_input('cmd:') 16 stdin,stdout,stderr = s.exec_command(cmd) # 執行命令 17 cmd_result = stdout.read(),stderr.read() # 讀取命令結果 18 for line in cmd_result: 19 print line
20 # paramiko實例(賬號密碼登錄執行命令)
1 #!/usr/bin/evn python 2 import os 3 import paramiko 4 host='127.0.0.1' 5 port=22 6 user = 'whl' 7 password = '123456' 8 ssh=paramiko.Transport((host,port)) 9 privatekeyfile = os.path.expanduser('~/.ssh/id_rsa') 10 mykey = paramiko.RSAKey.from_private_key_file( os.path.expanduser('~/.ssh/id_rsa')) # 加載key 不使用key可不加 11 ssh.connect(username=username,password=password) # 連接遠程主機 12 # 使用key把 password=password 換成 pkey=mykey 13 sftp=paramiko.SFTPClient.from_transport(ssh) # SFTP使用Transport通道 14 sftp.get('/etc/passwd','pwd1') # 下載 兩端都要指定文件名 15 sftp.put('pwd','/tmp/pwd') # 上傳 16 sftp.close() 17 ssh.close()
18 # paramiko實例(傳送文件)
1 #!/usr/bin/python 2 #ssh 3 import paramiko 4 import sys,os 5 host='127.0.0.1' 6 user = 'whl' 7 s = paramiko.SSHClient() 8 s.load_system_host_keys() 9 s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 10 privatekeyfile = os.path.expanduser('~/.ssh/id_rsa') # 定義key路徑 11 mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile) 12 # mykey=paramiko.DSSKey.from_private_key_file(privatekeyfile,password='061128') # DSSKey方式 password是key的密碼 13 s.connect(host,22,user,pkey=mykey,timeout=5) 14 cmd=raw_input('cmd:') 15 stdin,stdout,stderr = s.exec_command(cmd) 16 cmd_result = stdout.read(),stderr.read() 17 for line in cmd_result: 18 print line, 19 s.close()
19 # paramiko實例(密鑰執行命令)