过去,我在 kali linux 上设置了一个使用公钥身份验证的 ssh 服务器,它可以正常工作,但现在我在 Ubuntu 18.10 上,它不起作用。当我尝试连接客户端时,我得到:Permission denied (publickey)
通常,在 kali 上,我会使用 ssh 隧道服务 serveo.net 并成功执行以下命令:
ssh -R crayyhost:22:localhost:1337 serveo.net
我将像这样连接到服务器:ssh -J serveo.net auser@crayyhost
但这里我就是不能。我无法连接到我自己...服务器在 ubuntu 上,客户端在 kali 上。
我甚至无法连接ssh auser@EXTERNAL_IP -p 1337
——我收到“连接被拒绝”的提示。
LAN 也一样:-“权限被拒绝”ssh [email protected] -p 1337
服务器可以使用 连接自身ssh localhost -p 1337
,服务器甚至可以使用 远程连接自身ssh -J serveo.net auser@crayyhost
,但客户端不能。
客户端的id_rsa.pub
文件已添加到.ssh/authorized_keys
我甚至禁用StrictMode
了sshd_config
答案1
“连接被拒绝”意味着可能有防火墙。尝试运行telnet 1337
以验证端口至少可以从您尝试连接的位置访问。
“权限被拒绝”表明,除了防火墙之外,您的公钥也未正确安装。如果您已将 .pub 密钥添加到正确的目录,则可以尝试重新启动 ssh 服务以确保它可以接收它。ssh [email protected] -p 1337
除此之外,请仔细检查此问题的答案中列出的所有内容:https://askubuntu.com/questions/46424/how-do-i-add-ssh-keys-to-authorized-keys-file
答案2
您可能需要指定您的私钥。
使用ssh -i <private key path> user@server -p 1337
例如,如果您的私钥已直接复制到您的机器的目录中,则可以使用。这告诉它使用您指定的私钥。ssh -i id_rsa [email protected] -p 1337
您还可以研究如何将其添加到 ~/.ssh 中的配置文件中以实现自动化,以及端口。