Python paramiko模組的安裝與使用

lightwing發表於2021-09-09

paramiko是Python語言編寫的遵循SSH2協議,支援加密和認證方式,連線遠端伺服器執行命令或者上傳下載檔案。


一、安裝paramiko

pip3 install paramiko

二、使用使用者名稱密碼方式遠端執行命令

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自動接受遠端伺服器host key
ssh.connect('127.0.0.1', 22, 'username', 'password')  # 遠端主機IP、埠、使用者名稱、密碼
stdin, stdout, stderr = ssh.exec_command('df -h')  # 遠端伺服器要執行的命令
for line in stdout:
    print(line)
ssh.close()  # 關閉ssh連線

三、使用使用者名稱密碼方式上傳或下載檔案

import paramiko
t = paramiko.Transport('127.0.0.1', 22)
t.connect(username='username', password='password')
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put('local_file', 'remote_folder')
t.close()


import paramiko
t = paramiko.Transport('127.0.0.1', 22)
t.connect(username='username', password='password')
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get('remote_file', 'local_folder')
t.close()


四、使用ssh key方式遠端執行命令(前提遠端主機已經接受了你的公鑰)

import paramiko
 
private_key_path = '/home/xxx/.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('127.0.0.1', 22, username='username', pkey=key)
stdin, stdout, stderr = ssh.exec_command('df')
print(stdout.read())
ssh.close()

五、使用scp方式遠端執行命令

import paramiko
 
scp = paramiko.Transport(('127.0.0.1', 22))
scp.connect(username='username', password='password')
channel = scp.open_session()
channel.exec_command('touch hello/test.txt')
channel.close()
scp.close()

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3407/viewspace-2802352/,如需轉載,請註明出處,否則將追究法律責任。

相關文章