为了账号安全,请及时绑定邮箱和手机立即绑定

Python paramiko.ssh_exception.SSHException:没有现有会话

Python paramiko.ssh_exception.SSHException:没有现有会话

慕雪6442864 2023-07-27 16:43:11
host = "test.rebex.net"port = 22username = "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.netWelcome to Rebex Virtual Shell!For a list of supported commands, type 'help'.demo@ETNA:/$ demo@ETNA:/$ lsaspnet_clientpubreadme.txtdemo@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)>>> 
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

该代码对我有用。


当我在 Pageant 中加载密钥时,我也遇到错误auth_password(尽管不同 - “身份验证失败” )。在 Paramiko 尝试使用 Pageant 密钥后,Rebex 测试服务器似乎关闭了会话。连续密码认证失败。我想你的情况也会有类似的问题。不同的错误消息可能只是由于时间差异造成的。


starting thread (client mode): 0x33629f0

Local version/idstring: SSH-2.0-paramiko_2.6.0

Remote version/idstring: SSH-2.0-RebexSSH_5.0.7448.0

Connected (version 2.0, client RebexSSH_5.0.7448.0)

kex algos:['curve25519-sha256', 'curve25519-sha256@libssh.org', 'ecdh-sha2-nistp521', 'ecdh-sha2-nistp384', 'ecdh-sha2-nistp256', 'diffie-hellman-group16-sha512', 'diffie-hellman-group15-sha512', 'diffie-hellman-group-exchange-sha256', 'diffie-hellman-group14-sha256', 'diffie-hellman-group14-sha1', 'diffie-hellman-group-exchange-sha1'] server key:['ssh-ed25519', 'ecdsa-sha2-nistp256', 'rsa-sha2-512', 'ssh-rsa-sha256@ssh.com', 'rsa-sha2-256', 'ssh-rsa'] client encrypt:['aes256-gcm@openssh.com', 'aes128-gcm@openssh.com', 'aes256-ctr', 'aes256-cbc', 'aes192-ctr', 'aes192-cbc', 'aes128-ctr', 'aes128-cbc', 'chacha20-poly1305@openssh.com', 'twofish256-ctr', 'twofish192-ctr', 'twofish128-ctr', 'twofish256-cbc', 'twofish192-cbc', 'twofish128-cbc', 'twofish-cbc', '3des-ctr', '3des-cbc'] server encrypt:['aes256-gcm@openssh.com', 'aes128-gcm@openssh.com', 'aes256-ctr', 'aes256-cbc', 'aes192-ctr', 'aes192-cbc', 'aes128-ctr', 'aes128-cbc', 'chacha20-poly1305@openssh.com', 'twofish256-ctr', 'twofish192-ctr', 'twofish128-ctr', 'twofish256-cbc', 'twofish192-cbc', 'twofish128-cbc', 'twofish-cbc', '3des-ctr', '3des-cbc'] client mac:['hmac-sha2-512-etm@openssh.com', 'hmac-sha2-256-etm@openssh.com', 'hmac-sha2-512', 'hmac-sha2-256', 'hmac-sha1', 'hmac-sha1-96'] server mac:['hmac-sha2-512-etm@openssh.com', 'hmac-sha2-256-etm@openssh.com', 'hmac-sha2-512', 'hmac-sha2-256', 'hmac-sha1', 'hmac-sha1-96'] client compress:['none'] server compress:['none'] client lang:[''] server lang:[''] kex follows?False

Kex agreed: curve25519-sha256@libssh.org

HostKey agreed: ssh-ed25519

Cipher agreed: aes128-ctr

MAC agreed: hmac-sha2-256

Compression agreed: none

kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>

Switch to new keys ...

Adding ssh-ed25519 host key for test.rebex.net: b'e7e445c6b8e4bbd868892786fd0158f0'

Trying SSH agent key b'3f3ae3e3b0e0ef4e5b4bfe93613557d4'

userauth is OK

Authentication (publickey) failed.

Disconnect (code 2): Authentication is already in progress.

如果您想避免尝试 Pageant,请使用allow_agent以下参数SSHClient.connect

ssh.connect(host, port, username, password, allow_agent=False)

强制性警告:请勿使用-这样做您将失去针对MITM 攻击的AutoAddPolicy保护。


查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 419 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信