我刚刚设置了一个新的 Debian 服务器。我禁用了 root SSH 和密码身份验证,因此您必须使用密钥文件。
对于我的主要用户,一切都按预期工作。我使用ssh-keygen -t dsa并获得了自己的公钥和私钥。将一个放在授权密钥中,将另一个放在本地的 pem 文件中。
我想创建一个可以用来部署东西的用户,所以我做了基本相同的过程。我adduser编辑它,创建一个.ssh文件夹,运行ssh-keygen -t dsa(我也尝试过 RSA),将密钥放在适当的位置。
没运气。我收到一个Permission denied (publickey)错误。当我使用与有效帐户完全相同的密钥时,同样的错误。当我启用密码认证时,我可以使用密码通过 SSH 登录。
我该如何调试?
编辑
详细的 ssh 输出(deployer.pem 是正确的键):
debug2:密钥:/Users/eli/.ec2/deployer.pem (0x100126830) debug2:密钥:/Users/eli/.ec2/deployer.pem (0x100126b30) debug2:密钥:/Users/eli/.ec2/deployer.pem (0x0) debug1:可以继续的身份验证:publickey debug3:重新开始,传递不同的列表公钥 debug3:首选公钥,键盘交互,密码 debug3:authmethod_lookup 公钥 debug3:剩余首选:键盘交互,密码 debug3:authmethod_is_enabled 公钥 debug1:下一个身份验证方法:publickey debug1:提供公钥:/Users/eli/.ssh/id_rsa 调试 3:send_pubkey_test debug2:我们发送了一个公钥包,等待回复 debug1:可以继续的身份验证:publickey debug1:提供公钥:eli.pem 调试 3:send_pubkey_test debug2:我们发送了一个公钥包,等待回复 debug1:可以继续的身份验证:publickey debug1:提供公钥:/Users/eli/.ec2/deployer.pem 调试 3:send_pubkey_test debug2:我们发送了一个公钥包,等待回复 debug1:可以继续的身份验证:publickey debug1:提供公钥:/Users/eli/.ec2/deployer.pem 调试 3:send_pubkey_test debug2:我们发送了一个公钥包,等待回复 debug1:可以继续的身份验证:publickey debug1:尝试私钥:/Users/eli/.ec2/deployer.pem debug1:读取 PEM 私钥完成:输入 DSA debug3:sign_and_send_pubkey debug2:我们发送了一个公钥包,等待回复 debug1:可以继续的身份验证:publickey debug2:我们没有发送数据包,禁用方法 …