1,SSh登陸命令行實現:
#!/usr/bin/env python # encoding: utf-8 import paramiko private_key_path = '/Users/aolens/.ssh/id_rsa' key = paramiko.RSAKey.from_private_key_file(private_key_path) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('192.168.1.201', 22,username='root',pkey=key) #ssh.connect('192.168.1.201', 22,'root','aolens') #不採用×××登陸時 flag = True while flag: con = raw_input('輸入要執行的命令: ') if con == 'quit': flag = False ssh.close() else: stdin, stdout, stderr = ssh.exec_command(con) print stdout.read()
2,實現文件上傳下載
t = paramiko.Transport(('192.168.1.201',22)) t.connect(username='root',password='qixiang123') sftp = paramiko.SFTPClient.from_transport(t) #sftp.put('/Users/aolens/Downloads/1.sh','/root/1.sh') #put上傳文件到服務器,前邊是上傳文件地址,後邊是上傳後文件地址 sftp.get('/root/1.sh','/Users/aolens/Downloads/2.sh') #get下載文件,前邊是下載地址,後邊是下載後存放地址 t.close()
結合SSH登陸,優化文件上傳下載
#!/usr/bin/env python # encoding: utf-8 import paramiko private_key_path = '/Users/aolens/.ssh/id_rsa' key = paramiko.RSAKey.from_private_key_file(private_key_path) t = paramiko.Transport(('192.168.1.201',22)) t.connect(username='root',pkey=key) sftp = paramiko.SFTPClient.from_transport(t) flag = True while flag: con = raw_input('輸入要執行的命令: ') if con == 'quit': flag = False t.close() elif con == 'put': com_add = raw_input('輸入文件來源地址:') target_add = raw_input('輸入文件存放地址:') sftp.put(com_add,target_add) print '上傳完成[=========================] 100% ', "文件上傳至:%s"% (target_add) elif con == 'get': com_add = raw_input('輸入文件來源地址:') target_add = raw_input('輸入文件存放地址:') sftp.get(com_add,target_add) print '下載完成[=========================] 100% ', "文件存放在:%s"% (target_add) else: print '輸入正確的上傳下載指令' print '上傳: put ' print '下載: get ' print '========================='
對上邊SSH登陸優化,輸出信息
#!/usr/bin/env python # encoding: utf-8 import paramiko private_key_path = '/Users/aolens/.ssh/id_rsa' key = paramiko.RSAKey.from_private_key_file(private_key_path) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('192.168.1.201', 22,username='root',pkey=key) #ssh.connect('192.168.1.201', 22,'root','aolens') #不採用×××登陸時 flag = True while flag: con = raw_input('\033[1;34m輸入要執行的命令: \033[0m') if con == 'quit': flag = False ssh.close() else: stdin, stdout, stderr = ssh.exec_command(con) for i in (stdout.read(),stderr.read()): print i