1. 程式人生 > >遠程執行命令:paramiko

遠程執行命令:paramiko

local 標準輸入 ann pytho pcl toad toa host tran

paramiko模塊用於通過 ssh 登錄到遠程客戶端主機並執行命令,常見用法如下:

[root@localhost ~]$ yum install -y python-paramiko


通過用戶名密碼登錄遠程客戶端主機並執行命令:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import paramiko

ssh = paramiko.SSHClient()                                                          # 創建一個ssh客戶端對象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())                           #
設置以什麽方式連接遠程客戶端,這裏配置自動協商 ssh.connect(hostname=192.168.216.130, port=22, username=root, password=root) # 通過賬號密碼連接遠程客戶端 stdin, stdout, stderr = ssh.exec_command(date) # 遠程執行命令,結果會返回標準輸入、標準輸出、標準錯誤輸出 print stdout.read() # 查看執行結果
ssh.close() # 關閉連接
[root@localhost ~]$ python 1.py 
2019年 01月 29日 星期二 06:38:38 CST


通過密鑰登錄遠程客戶端主機並執行命令:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import paramiko

ssh = paramiko.SSHClient()                                          #
Create a new SSHClient key = paramiko.RSAKey.from_private_key_file(/root/.ssh/id_rsa) # Create a key object by reading a private key file ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Set the policy to use when connecting to a server ssh.connect(hostname=192.168.216.130, username=root, pkey=key) # Connect to an SSH server and authenticate to it stdin, stdout, stderr = ssh.exec_command(date) # Execute a command on the SSH server print stdout.read() ssh.close()
[root@localhost ~]$ python 1.py 
2017年 06月 02日 星期五 23:26:08 CST


通過密鑰登錄遠程客戶端主機並上傳下載文件:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import paramiko

t = paramiko.Transport((192.168.216.130, 22))    # Create a Transport object
key = paramiko.RSAKey.from_private_key_file(/root/.ssh/id_rsa)
t.connect(username=root, pkey=key)
sftp = paramiko.SFTPClient.from_transport(t)    # Create an SFTP client channel from an open Transport 
sftp.get(/etc/passwd, /tmp/passwd)          # 下載文件,把遠程客戶端的/etc/passwd下載到本地/tmp/passwd
sftp.put(/etc/passwd, /tmp/passwd)          # 上傳文件,把本地/etc/passwd上傳到遠程客戶端的/tmp/passwd
t.close() 

遠程執行命令:paramiko