1. 程式人生 > >python2 paramiko模塊初試   連接 ssh_connect 上傳 FTP_post

python2 paramiko模塊初試   連接 ssh_connect 上傳 FTP_post

計算機 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