背景:
之前在google cloud上新建了台虚机,后来因为手动修改了一下路径“~/.ssh/authorized_keys”这个文件就导致了出现上述的错误:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)。我依照往常一贯的作风,直接google 错误提示。完全不去思考可能的问题。不过也能解释,我这么做的一个原因,当时时间比较晚了,尝试过修改sshd_config文件但是不见效,并且多次改了多个值,但没有控制变量没有work,所以自己便认为修改配置中的"PasswordAuthentication"字段是没有的操作。拿谷歌搜索问题,静下心来还是有用的,但是浮躁的时候面对满屏的英文还真是没什么帮助。最后在曹大哥的帮助下解决了这个问题。
正文:
其实出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic)这个报错时我们也许可以庆幸下,这个报错说明我们的云平台上的防火墙和虚机的sshd服务都是好的。只不过是我们哪边的配置有些问题。
这个报错中publickey Permission denied的报错信息其实已经告诉我们问题了我们的公钥是错误的,一般情况下我们都可以理解这个问题,并快速解决问题,将公钥放到服务器的~/.ssh/authorized_keys文件中便可。但是尝试过"ssh centos@ip"后得到这个报错就会有点蒙圈了,特别是我这种小菜。之前没遇过,所以不知道,后来实验了才知道这是因为PasswordAuthentication这个字段为"no"的缘故。
所以遇到这种问题便是修改
sudo vim /etc/ssh/sshd_config
增加如下修改
PasswordAuthentication yes
sudo systemctl restart sshd
或者
sudo ~/ssh/authorized_keys
添加你本机的公钥到该文件中
注意:
如果你喜欢用root用户登入的话,要确保
/etc/ssh/sshd_config
PermitRootLogin yes