You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

删除~/.ssh文件夹后SSH密钥认证失败的问题求助

删除~/.ssh文件夹后SSH密钥认证失败的问题求助

大家好,我最近碰到了SSH密钥认证的棘手问题,想请各位大佬帮忙支支招:

之前我总是被要求输入密码才能连接服务器,而不是用SSH密钥自动认证。我想着把本地~/.ssh目录里的所有内容都删掉,重新在笔记本上生成新的密钥对,手动复制公钥后用SFTP客户端(Transmit)加到服务器的authorized_keys文件里,应该就能解决问题。但没想到这么操作之后,密钥认证还是失败了。

现在我能对服务器上的~/.ssh目录进行读写操作,但没法通过SFTP客户端编辑/etc/ssh/sshd_config来开启PasswordAuthentication选项——这让我没法临时切换回密码登录来排查问题。

我还试着把这台名叫“ubuntu”的服务器接到显示器上,屏幕显示:

Ubuntu 23.04 ubuntu ttyl

ubuntu login:

但不管我怎么输入账号密码,都没有任何反应,这部分也不知道能不能修复?

相关操作与输出信息

我查看了服务器的/var/log/auth.log日志,另外执行了几个SSH命令,结果如下:

# 尝试指定id_ed25519密钥登录
➜ ssh -o "IdentitiesOnly=yes" -i id_ed25519 caleb@192.168.1.19
caleb@192.168.1.19: Permission denied (publickey).

# 尝试指定id_rsa密钥登录
➜ ssh -o "IdentitiesOnly=yes" -i id_rsa caleb@192.168.1.19
caleb@192.168.1.19: Permission denied (publickey).

# 这里输错了命令,误把密钥文件名当成了主机名
➜ ssh -v id_ed25519 caleb@192.168.1.19
OpenSSH_9.0p1, LibreSSL 3.3.6
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/* matched no files
debug1: /etc/ssh/ssh_config line 54: Applying options for *
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug1: Connecting to id_ed25519 port 22.
ssh: Could not resolve hostname id_ed25519: nodename nor servname provided, or not known

# 同样输错了命令
➜ ssh -v id_rsa caleb@192.168.1.19
OpenSSH_9.0p1, LibreSSL 3.3.6
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/* matched no files
debug1: /etc/ssh/ssh_config line 54: Applying options for *
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug1: Connecting to id_rsa port 22.
ssh: Could not resolve hostname id_rsa: nodename nor servname provided, or not known

另外我还执行了ssh -vvv -i id_rsa caleb@192.168.1.19获取了详细的调试日志,里面应该有更多认证失败的细节。

有没有朋友遇到过类似的问题?或者有什么排查的思路和解决办法?非常感谢大家的帮助!

备注:内容来源于stack exchange,提问作者Chris

火山引擎 最新活动