如果公钥存在,则无法使用私钥连接

如果公钥存在,则无法使用私钥连接

我正在尝试使用服务器上的特定密钥进行连接,但由于某种原因,如果公钥存在于私钥旁边,则我无法使用私钥进行连接。客户端和服务器都是 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

相关内容