你好,我的问题是我想使用ssh2-python包来远程读取一堆文件,但是我似乎无法将命令发送到远程主机。
最初,我从paramiko软件包开始,但是确实可以使用它,但是我要处理很多大内存文件(这就是为什么我不能将它们带到本地计算机上的原因),而且它有点太慢。我目前正在运行Python 3.6.3和ssh2-python 0.18.0.post1,并尝试更改ssh2-python的版本,但这没有帮助。
import socket
from ssh2.session import Session
host_ip=socket.gethostbyname('hostname')
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host_ip,22))
session=Session()
session.handshake(sock)
print(session.userauth_list('username'))
session.userauth_password('username','password')
channel=session.open_session()
channel.execute('echo Hello')
0
[['publickey','gssapi-keyex','gssapi-with-mic','password']
0
0
我希望代码打印出Hello,但是它只打印了0。在握手之后以及在调用身份验证方法之后,它也打印了0,我不知道为什么。好像我正在与远程计算机联系,因为它确实打印出需要进行的身份验证,但是在我看来,我实际上并未登录并且可以执行任何操作。我真的很想使用这个软件包,因为从网上阅读的内容来看,paramiko的速度要快得多,(替代方案也可以),但是我似乎无法弄清楚这里发生了什么。
请先帮助并表示感谢!
问题您好,我的问题是我想使用ssh2-python软件包来远程读取一堆文件,但是我似乎无法将命令发送到远程主机。最初,我以...
您实际上可能已经连接并正在执行命令,但是channel.execute('ls')
返回'0'(它是退出/状态代码)。