Permission denied (publickey,gssapi-keyex,gssapi-with-mic).的完整解决方法

      今天手贱,在搞vsftpd时候执行了”chmod -R 777 /”的命令,直接修改了所有文件的权限。瞬间爆炸,原来Linux 中的每一个文件或目录都包含有访问权限,许多功能配置文件需要特定的权限才能工作。
      比如SSH,/.ssh目录下的每一个文件都需要特定的权限和拥有者才可以使用,否则使用SSH连接服务器时就会出现”Permission denied (publickey,gssapi-keyex,gssapi-with-mic).”的错误,
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).的完整解决方法_第1张图片

      关于Permission denied (publickey,gssapi-keyex,gssapi-with-mic).这个错误的解决方法,网上有很多,但是都有点误导人。总结了一下排查方法就是下面三点:

      1. 首先在服务器本地测试ssh 127.0.0.1,如果可以那就是防火墙的问题。网上很多解决方法,这里不在写,很好解决。

      2. 若本地连接有问题,首先打开配置文件sshd_config寻找问题(vim /etc/ssh/sshd_config)。这里简单总结几个必须要修改的配置:
RSAAuthentication yes
PubkeyAuthentication yes #这两项为打开公钥模式
AuthorizedKeysFile .ssh/authorized_keys #配置公钥记录文件
PasswordAuthentication yes #打开密码验证模式

      3. 如果上述修改之后测试还不行,那就说明是文件权限的问题(本人就是由于误改了系统文件的权限)。如果是这样。解决方法就是找到一个完全相同配置的Linux系统,复制其系统目录下的systemp.bak文件,这个文件记录了所有的文件权限。

scp root@目标机器IP:system.bak文件路径  本地存放system.bak路径

然后执行命令:

setfacl --restore=systemp.bak

最后重启系统方能恢复正常。当然如果不想那么麻烦,直接重装系统。

      最后给自己说一句切记,Linux下的文件不能随便修改权限。

你可能感兴趣的:(ssh,linux,后台)