原文地址:http://www.cnblogs.com/wuhongliang/p/5134587.html
Python---paramiko
paramiko 是基于python实现的SSH2远程安全连接,支持认证及秘钥方式.可以实现远程执行命令,文件传输,中间SSH代理等功能.
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 s.close()
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()
#!/usr/bin/python #ssh import paramiko import sys,os host='127.0.0.1' user = 'whl' s = paramiko.SSHClient() s.load_system_host_keys() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) privatekeyfile = os.path.expanduser('~/.ssh/id_rsa') # 定义key路径 mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile) # mykey=paramiko.DSSKey.from_private_key_file(privatekeyfile,password='061128') # DSSKey方式 password是key的密码 s.connect(host,22,user,pkey=mykey,timeout=5) cmd=raw_input('cmd:') stdin,stdout,stderr = s.exec_command(cmd) cmd_result = stdout.read(),stderr.read() for line in cmd_result: print line, s.close()