host = "test.rebex.net"
port = 22
username = "demo"
password = "password"
command = "ls"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port, username, password)
stdin, stdout, stderr = ssh.exec_command(command)
lines = stdout.readlines()
print(lines)
应该产生这个输出。
['aspnet_client\n', 'pub\n', 'readme.txt\n']
该凭证在该演示网站上运行良好
wolf@linux:~$ sshpass -p password ssh demo@test.rebex.net
Welcome to Rebex Virtual Shell!
For a list of supported commands, type 'help'.
demo@ETNA:/$
demo@ETNA:/$ ls
aspnet_client
pub
readme.txt
demo@ETNA:/$
但是,该代码无法按预期工作。我在行后立即收到错误ssh.connect(host, port, username, password)。
>>> import paramiko
>>> host = "test.rebex.net"
>>> username = "demo"
>>> password = "password"
>>> port = 22
>>>
>>> command = "ls"
>>>
>>> ssh = paramiko.SSHClient()
>>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>>> ssh.connect(host, port, username, password)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/wolf/.local/lib/python3.8/site-packages/paramiko/client.py", line 435, in connect
self._auth(
File "/home/wolf/.local/lib/python3.8/site-packages/paramiko/client.py", line 764, in _auth
raise saved_exception
File "/home/wolf/.local/lib/python3.8/site-packages/paramiko/client.py", line 751, in _auth
self._transport.auth_password(username, password)
File "/home/wolf/.local/lib/python3.8/site-packages/paramiko/transport.py", line 1498, in auth_password
raise SSHException("No existing session")
paramiko.ssh_exception.SSHException: No existing session
>>>
让我知道如何使其发挥作用。我只想要一个用于 SSH 连接的简单代码。
更新
>>> ssh.connect(host, port, username, password, look_for_keys=False, allow_agent=False)
>>>
红颜莎娜
相关分类