为什么我不能使用密钥或密码login? 我该如何阻止?

我刚刚发现我可以login到我的服务器,只要我提供一个缺less的文件到SSH客户端!

我可以检查什么来找出为什么,我可以改变什么来阻止这种情况的发生?

使用缺less的文件login

$ ssh -i ~/.ssh/x [email protected] Warning: Identity file /c/Users/G/.ssh/x not accessible: No such file or directory. Last login: Wed Aug 9 20:20:49 2017 from 192.168.15.250 user@server:~$ 

未能使用无效的证书login

 $ ssh -i ~/.ssh/invalid.pem user@server Permission denied (publickey). 

成功login

 $ ssh -i ~/.ssh/valid.pem user@server Last login: Wed Aug 9 20:21:07 2017 from 192.168.15.250 user@server:~$ 

这些是我的/ etc / ssh / sshd_config中唯一没有注释的行

 Host * SendEnv LANG LC_* HashKnownHosts yes GSSAPIAuthentication yes GSSAPIDelegateCredentials no 

在回答“我可以检查什么来找出原因”

ssh -vv 。 -vv参数给出了详细的debugging,显示在按下本地客户机上的返回和在远程服务器上看到提示之间正在发生的事情

回答“为什么我不能使用密钥或密码login?”

那不是发生了什么事。 在这个特定的情况下,合适的密钥valid.pem被复制到id_rsa文件中。 正在使用重复的密钥


以下情况发生在这个客户端上:

  1. 警告显示指定的密钥文件不可访问
  2. 客户端试图寻找任何合适的密钥

如下所示:

 debug2: key: /c/Users/G/.ssh/id_rsa (0x0) debug2: key: /c/Users/G/.ssh/id_dsa (0x0) debug2: key: /c/Users/G/.ssh/id_ecdsa (0x0) debug2: key: /c/Users/G/.ssh/id_ed25519 (0x0) 
  1. 然后它尝试id_rsa键。 如下所示debug1: Trying private key: /c/Users/G/.ssh/id_rsa
  2. 服务器看到这个密钥是有效的,并允许login继续debug1: Authentication succeeded (publickey).