想着给组里的服务器配一个 sshkey 这样就可以省去每次输密码的麻烦了。但似乎…… 服务器有自己的想法。
记录一个奇怪的 bug,以及一个奇怪的修复方式。
操作
在服务器用户目录下的 .ssh
文件夹下运行 ssh-keygen -t rsa
生成秘钥。
然后将私钥下载到本地的 windows 机器上。通过 mobaxterm 配置 sshkey 登录
到这里都很顺利。直到登录的那一刻
Server refused our key!
秘钥被拒绝,需要输入密码才能进入。
尝试
思路 1:在 /etc/ssh/sshd_config
中配置关闭 StrictMode
但由于服务器是多人使用,不是很懂,恐造成权限问题,故暂不考虑这种方法。
思路 2:调整权限设置以满足 StrictMode
的要求。 远程连接服务器 Server refused our key | CSDN 博客
思路 3:由于 Openssh
版本问题,导致 RSA
加密算法不被支持。需要在 sshd_config
文件中配置支持 RSA
mobaxterm 出现 Server refused our key 的问题 | CSDN 博客
或者换用其他加密算法 使用 Ed25519 算法生成你的 SSH 密钥 | 知乎
思路 4:开启详细的日志,定位问题。ssh 配置 key 后提示 Server refused our key
|CSDN 博客
前三个思路并没有解决我的问题,第四个思路给了我更多的提示。关键的报错信息是:
mm_answer_keyallowed: publickey authentication test: RSA key is not allowed
有的说是秘钥不兼容,有的说是 Win32
限制,看的一头雾水。
解决
这篇文章给了我一点思路 Can't set up SSH key (PuTTY to Ubuntu Server) | StackExchange 文中说可能是生成的秘钥格式不正确。
我的尝试算是歪打正着 —— 我决定不在 linux 服务器上生成秘钥,而是在本地的 windows 系统中重新生成了秘钥,然后上传到服务器,问题就奇奇怪怪地解决了!