遠程執行命令:paramiko
阿新 • • 發佈:2019-02-09
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