这是一个长期存在的问题,我刚刚忽略了它。我有一个个人 Ubuntu 服务器,上面有几个不同的帐户。所有其他帐户都可以使用无密码 ssh 登录。但是,当尝试使用公钥 ssh 到 root 时(使用 ssh-copy-id 之后),它会要求密码验证。
现在这是一个问题,因为我正在处理将部署到该服务器的 CI/CD 管道,而且我宁愿不必输入我的密码。
我以为这是我的 ssh 密钥类型,所以我也创建了一个基本 RSA 测试密钥。看起来我的~/.ssh/id_ed25519
和我的都./testssh
被使用了,但都没有成功。
的输出ssh -v root@myserver
在这里:ssh 终端的编辑屏幕截图
我尝试过rm ~/.ssh/authorized_keys
并重做ssh-copy-id
了两个 ssh 密钥,但无济于事。重申一下:我是能够通过公钥与该机器的任何其他非 root 用户进行 ssh 连接。我完全不知道这里的问题是什么,任何帮助都将不胜感激!谢谢!
答案1
问题似乎出在 root 用户本身的 ssh 密钥上。我能够通过运行rm -rdf ~/.ssh
然后通过生成新的 ssh 密钥来解决这个问题ssh-keygen -t ed25519 -b 4096
。这恢复了所有被搞乱的文件权限。然后我ssh-copy-id
在客户端计算机上运行并尝试ssh
访问服务器。这次没有提示我输入密码,并且能够再次成功使用公钥身份验证。