使用Python更改Windows SSH连接中的目录
以下是我通过SSH(Cygwin服务器在LAN桌面上运行)从Windows PC连接到Windows LAN桌面的代码:使用Python更改Windows SSH连接中的目录,python,python-2.7,python-3.x,ssh,windows-shell,Python,Python 2.7,Python 3.x,Ssh,Windows Shell,以下是我通过SSH(Cygwin服务器在LAN桌面上运行)从Windows PC连接到Windows LAN桌面的代码: import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('135.24.237.178',username = 'cyg_server',password = 'sandforce') 我能够成功连接。但是
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('135.24.237.178',username = 'cyg_server',password = 'sandforce')
我能够成功连接。但是,现在如果我这样做:
command = "cd c:\;dir"
stdin,stdout,stderr = ssh.exec_command(command)
stdout.readlines()
然后pyscripter不输出任何内容。任何人都可以告诉我为什么以及如何使此代码工作吗?我无法复制您的问题。我正在使用以下代码:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, username = user, password = pw)
command = "cd c:\;dir"
stdin, out, err = client.exec_command(command)
print "stdout: " + out.read()
输出:
stdout:
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 9/12/2016 7:34 AM Logs
d----- 9/26/2018 1:33 PM Microsoft
d----- 9/26/2018 11:47 AM OpenSSH-Win32
d-r--- 9/27/2018 3:57 AM Program Files
d----- 9/26/2018 11:43 AM Program Files (x86)
d----- 9/27/2018 3:56 AM Python27
d----- 9/26/2018 12:27 PM support
d----- 9/26/2018 12:27 PM TEMP
d-r--- 9/27/2018 7:40 AM Users
d----- 9/27/2018 3:58 AM Windows
-a---- 9/26/2018 11:42 AM 435 adrights.log
-a---- 9/27/2018 7:40 AM 6532 rshd.log
-a---- 9/26/2018 11:42 AM 107 rshdinst.log
-a---- 9/26/2018 11:47 AM 849 rshds.log
-a---- 9/26/2018 11:43 AM 0 validate.log
我知道这不是一个答案,但它不适合评论。评论中提供的链接似乎也不是特别有用。这是我对这类事情的常规代码:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, username = user, password = pw)
channel = client.get_transport().open_session()
command = "cd c:\;dir"
channel.exec_command(command)
out = channel.makefile().read()
err = channel.makefile_stderr().read()
returncode = channel.recv_exit_status()
channel.close() # channel is closed, but not the client
希望这有帮助。检查此链接中的答案是否适合您。可能重复的