abstract:本文實(shí)例講述了Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法。分享給大家供大家參考,具體如下:如果兩臺服務(wù)器之間使用了RSA秘鑰免密碼登錄的方式,可以先查找出rsa秘鑰的對應(yīng)目錄(如find / -name id_rsa 或者locate id_rsa),接著通過Python中paramiko模塊可以這樣實(shí)現(xiàn)scp功能:def scp_by_key(host_ip, 
本文實(shí)例講述了Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法。分享給大家供大家參考,具體如下:
如果兩臺服務(wù)器之間使用了RSA秘鑰免密碼登錄的方式,可以先查找出rsa秘鑰的對應(yīng)目錄(如find / -name id_rsa 或者locate id_rsa),
接著通過Python中paramiko模塊可以這樣實(shí)現(xiàn)scp功能:
def scp_by_key(host_ip, host_port, remote_path, local_path, username, pkey_path): try: key=paramiko.RSAKey.from_private_key_file(pkey_path) t = paramiko.Transport((host_ip, host_port)) t.connect(username=username, pkey=key) sftp = paramiko.SFTPClient.from_transport(t) src = remote_path des = local_path sftp.get(src,des) t.close() except Exception as e: print e
我們可以這樣使用該方法:
scp_by_key('192.168.0.33', 22, '/xx/xxx/a.txt', 'xx/xxx/b.txt', 'xiaomo', '/home/xiaomo/.ssh/id_rsa')
用起來是不是很爽呢?不過前提是要有rsa密鑰...如果需要密碼,則只需將pkey參數(shù)換為password傳入即可:
t = paramiko.Transport((host_ip, host_port)) t.connect(username=username, password='xxx')
更多關(guān)于Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法請關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!