使用ssh连接到远程主机后执行unix操作

时间:2017-08-29 17:00:36

标签: python paramiko

使用paramiko连接到远程主机。如何跨目录移动并执行unix操作?下面的示例代码

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('remote ip', username='username', password='password')
ftp = ssh.open_sftp()
ssh.exec_command('cd /folder1/folder2')

如何执行列出目录中的文件,检查当前工作目录以及执行其他unix命令等操作?

1 个答案:

答案 0 :(得分:1)

这种方式(ls命令上的示例):

import paramiko
import sys

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('x.x.x.x', port=22, username='user', password='pass')
stdin, stdout, stderr = ssh.exec_command('ls')

# Wait for the command to terminate
while not stdout.channel.exit_status_ready():
    # Only print data if there is data to read in the channel
    if stdout.channel.recv_ready():
        rl, wl, xl = select.select([stdout.channel], [], [], 0.0)
        if len(rl) > 0:
            # Print data from stdout
            print stdout.channel.recv(1024),



ssh.close()