python2 paramiko模塊初試 連接 ssh_connect 上傳 FTP_post
阿新 • • 發佈:2017-05-11
計算機 python 模塊 paramiko 服務器 linux
今天剛好看到了 python2 得 paramiko 模塊 就拿來試了一下 發現 在windown 和linux 利用 paramiko 進行 ssh 連接得不同之處 linux 利用 ~/.ssh/known_hosts 出已安全!
如已登陸過
s.load_system_host_keys(‘/.ssh/known_hosts‘)
ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會核對公鑰。如果公鑰不同,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。
windwon 自動添加新的主機的主機名和關鍵的政策 到本地 hostkeys `對象中
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
paramiko模塊是用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的連接
試一下連續運行 bash 命令 ‘df -H ‘
# _*_ coding:utf-8 _*_ import paramiko #遠程服務器 hostname = "191.168.1.220" #端口 port = 22 #用戶名 username = "root" #密碼 password = "66666" #創建SSH連接日誌文件(只保留前一次連接的詳細日誌,以前的日誌會自動被覆蓋) paramiko.util.log_to_file("paramiko.log") s = paramiko.SSHClient() #Linux 讀取know_host ssh-keygen -t rsa #s.load_system_host_keys() #windown 添加——政策 s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #建立SSH連接 s.connect(hostname,port,username,password) #運行一下 bash ‘df -H‘ stdin,stdout,stderr = s.exec_command(‘df -H‘) #打印輸出一下 print stdout.read() s.close()
現在試一下 post 一個 File 到 Linux 先來寫個方法
def ssh_post(Server_ip,port,USER,PASSWORD,clinent_file,server_file): server=paramiko.Transport(Server_ip,port) server.connect(username=USER,password=PASSWORD) FTP_POST=paramiko.SFTPClient.from_transport(server) FTP_POST.put(clinent_file,server_file) server.close()
現在來測試一下
if __name__ == "__main__": port=22 Server_ip=‘191.168.1.220‘ User_name=‘root‘ User_password=‘66666‘ CLINENT_FILE=‘c:\\red.txt‘ SERVER_FILE=‘/home/yum.txt‘ ssh_post(Server_ip,port,User_name,User_password,CLINENT_FILE,SERVER_FILE)
本文出自 “10740501” 博客,請務必保留此出處http://10750501.blog.51cto.com/10740501/1924326
python2 paramiko模塊初試 連接 ssh_connect 上傳 FTP_post