无法通过ssh与公钥认证方法连接

在我的Windows 10上,我遇到了无法通过ssh用户使用公共密钥身份验证方法在git bash上使用如下命令连接到m Vagrant虚拟机的问题

$ ssh -v lauser@127.0.0.1 -p 2222 -i ~/.ssh/id_rsa

系统会提示我输入密码,就好像我没有看到我在vm中的〜/ .ssh / Authorized_keys文件中复制的公钥一样 . 同时,密码验证方法有效,还有'vagrant ssh' . 我已经确定了

  • 在本地创建密钥对,在远程创建一个.ssh目录,并将pub密钥字符串添加到远程的.ssh / authorized_keys文件中; .ssh和.ssh / authorized_keys文件都归用户所有(lauser),并设置为700和644

  • 编辑vm上的/ etc / ssh / sshd_config文件以使用RSAAuthentication yes PubkeyAuthentication yes并重新启动sshd服务器(使用'sudo service ssh restart') .

  • 验证是否已暂时禁用防火墙以消除任何复杂情况 .

  • 验证只有一个vm正在运行,其他所有vm都处于'suspend'或'halt'模式 .

  • 通过'file~ / .ssh / authorized_keys'确认文件类型,并获得确认'〜/ .ssh / authorized_keys:OpenSSH RSA公钥'

  • 通过比较vm中'sudo cat~ / .ssh / authorized_keys'的输出和本地的'cat~ / .ssh / id_rsa.pub'的输出来验证密钥是否匹配 .

但在尝试通过公钥认证进行连接时,仍然会获得Permission denied(publickey) .

回答(1)

2 years ago

听起来你到目前为止已经完成了所有事情 . 当我遇到这个问题时,通常是由于目标用户的主目录(〜),〜/ .ssh或〜/ .ssh / authorized_keys上的目录权限 .

this answer on SuperUser .