我正在尝试将我的公共 ssh 密钥复制到我的 vps,以便我可以使用 登录ssh
。
但是,当我输入命令时:
ssh-copy-id me@myserver
我收到此错误消息
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Permission denied (publickey).
有人知道怎么修复这个问题吗?我用的是 Mac。
答案1
正如 Camilo 所建议的,您可以在远程服务器上手动添加正确的 SSH 公钥。
在我的情况下,当 SSH 程序尝试使用与使用 ssh-copy-id 时定义不同的身份文件或无法找到定义的私钥/身份文件时,会发生同样的错误。您可以通过在 ssh 命令中添加 -v 来观察 SSH 程序在执行 ssh 命令时执行的操作:
ssh -v username@your-host-ip-or-domain
然后,您只需在本地机器上获取 SSH 程序尝试私钥的任何公钥,例如(在 Mac/Linux 上)默认密钥:
cat ~/.ssh/id_rsa.pub
...并将其添加到远程的authorized_keys文件中:
~/.ssh/authorized_keys
另一个对我来说更好的解决方案是在我的本地 ssh 配置文件中添加自定义主机。在我的 Mac 上它是:
~/.ssh/config
例如,您可以在此处添加如下内容:
Host mynewserver
HostName some.IP.number.or.domain
Port 20000 #if custom port is used and not the default 22
User the_root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_for_my_new_server
然后你只需要执行:
ssh mynewserver
...瞧瞧
答案2
我遇到了同样的问题,对我有用的方法是手动输入,在这个链接中你可以找到如何操作手动输入。这样,即使使用配对密钥,我也能够通过 ssh 进行连接。当我配置它时,.ssh/authorized_keys 文件包含另一个指向初始机器的密钥,因此我用初始机器的 /.ssh/id_rsa.pub 中包含的信息覆盖该信息