这是我通过 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')
我能够成功连接。但是,现在如果我这样做:
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
希望这可以帮助。




