我有两台 Windows 计算机,其腻子设置相同。相同的密钥,使用相同的代理命令登录相同的用户帐户。这两台计算机连接到我的 Linux 网络。我的 Linux 网络使用堡垒服务器。
如果我直接连接到堡垒服务器,一切正常。如果我尝试代理到主服务器,事情就会停止工作。两周前我遇到了这个问题。没有做任何改变,它就开始工作了。它已经工作了 2 周了。今天,它又随机停止工作了
我在 Putty > Proxy > Telnet 命令中使用此 plink 行
plink.exe %user@%proxyhost -i "C:\Users\<user>\.ssh\bastion.ppk" -agent -nc %host:%port
在堡垒服务器上,我可以看到两个系统在某种程度上具有相同的日志
不工作:
Feb 12 16:06:39 bastionserver sshd[6554]: debug1: PAM: setting PAM_TTY to "ssh"
Feb 12 16:06:39 bastionserver sshd[6554]: debug2: monitor_read: 100 used once, disabling now
Feb 12 16:06:39 bastionserver sshd[6554]: debug3: mm_request_receive entering
Feb 12 16:06:39 bastionserver sshd[6554]: debug3: monitor_read: checking request 4
Feb 12 16:06:39 bastionserver sshd[6554]: debug3: mm_answer_authserv: service=ssh-connection, style=, role=
Feb 12 16:06:39 bastionserver sshd[6554]: debug2: monitor_read: 4 used once, disabling now
Feb 12 16:06:39 bastionserver sshd[6554]: debug3: receive packet: type 1 [preauth]
Feb 12 16:06:39 bastionserver sshd[6554]: error: Received disconnect from <client_ip> port 49763:14: No supported authentication methods available [preauth]
在职的:
Feb 12 16:06:58 bastionserver sshd[6556]: debug1: PAM: setting PAM_TTY to "ssh"
Feb 12 16:06:58 bastionserver sshd[6556]: debug2: monitor_read: 100 used once, disabling now
Feb 12 16:06:58 bastionserver sshd[6556]: debug3: receive packet: type 50 [preauth]
Feb 12 16:06:58 bastionserver sshd[6556]: debug1: userauth-request for user screenreader service ssh-connection method publickey [preauth]
Feb 12 16:06:58 bastionserver sshd[6556]: debug1: attempt 1 failures 0 [preauth]
Feb 12 16:06:58 bastionserver sshd[6556]: debug2: input_userauth_request: try method publickey [preauth]
Feb 12 16:06:58 bastionserver sshd[6556]: debug1: userauth_pubkey: test whether pkalg/pkblob are acceptable for RSA <SHA256> [preauth]
...
答案1
服务器重启后又出现这个问题。我不清楚发生了什么变化,但重新启动后,plink 命令中使用的 SSH 密钥不再被读取。
这是通过点击PuTTy 的代理页面Yes
下诊断的Print proxy diagnostics in the terminal window
在我上面列出的路径中,实际上非常重要。用户名以\r开头
因此,不要尝试运行:
plink.exe %user@%proxyhost -i "C:\Users\rick\.ssh\bastion.ppk" -agent -nc %host:%port
它实际上是在尝试运行:
plink.exe %user@%proxyhost -i "C:\Usersick\.ssh\bastion.ppk" -agent -nc %host:%port