问题
您好我的问题是我想使用 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', '密码']
0
0
期望/想法
我希望代码打印 Hello,但它只是打印了 0。它还在握手之后和调用身份验证方法之后打印了 0,我不知道为什么。似乎我正在与远程机器联系,因为它确实打印出了它将需要哪些身份验证,但在我看来,我实际上并没有登录并且可以做任何事情。我真的很想使用这个包,因为从我在网上阅读的内容来看,paramiko 的速度要快得多,(替代品会很好)但我似乎无法弄清楚这里发生了什么。
请提前帮助和感谢!