我正在尝试使用服务器上的特定密钥进行连接,但由于某种原因,如果公钥存在于私钥旁边,则我无法使用私钥进行连接。客户端和服务器都是 Ubuntu 16.04。
目前的情况:我的 .ssh 文件夹中有我的 ssh 密钥:
samk@local:~$ ls -ld .ssh
drwx------ 2 samk samk 4096 Oct 29 11:36 .ssh
samk@local:~$ ls -l .ssh/jenkins-slave*
-rw------- 1 samk samk 1679 Oct 24 13:23 .ssh/jenkins-slave_rsa
-rw------- 1 samk samk 429 Oct 24 12:09 .ssh/jenkins-slave_rsa.pub
问题是我无法使用我的 ssh 私钥连接:
samk@local:~$ /usr/bin/ssh -i ~/.ssh/jenkins-slave_rsa ubuntu@jenkins-slave-01
Permission denied (publickey).
如果我将公钥重命名为其他名称,我就可以连接:
samk@local:~$ mv .ssh/jenkins-slave_rsa.pub .ssh/jenkins-slave_other
samk@local:~$ /usr/bin/ssh -i ~/.ssh/jenkins-slave_rsa ubuntu@jenkins-slave-01
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-137-generic x86_64)
Last login: Mon Oct 29 10:25:32 2018 from 192.168.0.88
ubuntu@jenkins-slave-01:~$
如果我重新命名公钥,我就无法再连接。
这里发生了什么事?
答案1
发生的情况是公钥(.ssh/jenkins-slave_rsa.pub)与私钥(.ssh/jenkins-slave_rsa.pub)不匹配。
我在按照此答案中的步骤操作时发现了这一点:https://serverfault.com/a/426429/30128