![尝试通过互联网连接服务器时权限被拒绝(公钥)](https://linux22.com/image/929074/%E5%B0%9D%E8%AF%95%E9%80%9A%E8%BF%87%E4%BA%92%E8%81%94%E7%BD%91%E8%BF%9E%E6%8E%A5%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%EF%BC%88%E5%85%AC%E9%92%A5%EF%BC%89.png)
运行 Ubuntu Server 20.04.01
在路由器上转发端口 22 后,我能够通过 ssh 连接到 IP 地址来访问我的服务器。本地主机与 IPv4 的连接仍然有效。但是,在使用 Google Authenticator 设置双因素身份验证后,我无法再使用 IP 地址进行连接,只有 IPv4 有效,并且它会验证身份验证代码。
每次它都说:
sudo ssh [email protected]
[email protected]: Permission denied (publickey).
我已确保在连接服务器之前在 WSL 上生成的密钥(/home/username/.ssh/id_rsa.pub)也在登录时的服务器文件(/home/username/.ssh/authorized_keys)上。
有什么建议么?
答案1
因为它解决了这个问题,所以跟进我的评论。
我认为添加 Google Authenticator 与您的问题无关。基本上,使用 运行命令会sudo
在 root 用户上下文中运行它。当您运行命令时ssh user@server
,它会在下面查找/home/$USER/.ssh/
要使用的私钥。当您使用 运行它时sudo ssh user@server
,它会在下面查找/root/.ssh/
私钥。我猜你的密钥在你的用户帐户下,而不是 root 下。