在unix服务器中找不到id_rsa.pub.我能再生吗?Id_sra(私钥)存在



我想做的是将密钥复制到另一个主机。

ssh-copy-id -i ~/.ssh/id_rsa user@host

我得到错误:

/usr/bin/ssh副本id:错误:无法打开id文件'[homedir].ssh/id_rsa.pub':

所以没有公钥。那么它在哪里呢?我尝试使用命令

sudo find / -name id_rsa.pub

但它只找到了一个我在测试目录中实验生成的。我试着从测试目录中发送实验,但它一直在无限地询问释义,当我不断粘贴时就不发送了。

所以有问题。

我可以使用再生

ssh-keygen -t rsa

但随后它尝试使用~./。ssh目录

并且想要覆盖私有id_rsa密钥。我担心这可能会使一些事情刹车。

那么我该如何获取我的公钥文件呢?

以防其他人来这里寻找OP问题的答案。。。直接回答这个问题(即,在缺少.pub密钥的情况下,如何重新生成.pub密钥,而您只有私钥)。。。

答案是:

从私钥重新生成.pub密钥

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

-y选项是指示ssh-keygen输出公钥的命令。

这将重新生成该对的.pub部分。正如OP所指出的,如果你只是生成一个新的对,并替换旧的私钥,你将无法访问你已经向其提供公钥的任何服务器。当然,你可以通过向这些服务器提供新公钥的过程,但如果可以轻松避免,为什么要经历这种麻烦呢?

RSA密钥在对上工作。您可以多次生成ssh私钥和公钥。。它不会打碎任何东西。它只是用新生成的密钥替换旧的密钥。这只需要将新生成的公钥id_rsa.pub复制到远程机器的~/.ssh/authorized_keys文件中,以便使用rsa密钥访问安全shell。

因此,在您家的.ssh目录上生成新的rsa密钥(旧密钥被新密钥替换),并复制到远程主机的.sh目录

cd /home/<your_username>/.ssh
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub remote_username@host:~/.ssh/authorized_keys

然后

ssh remote_username@host

在生成新密钥时保持passphrase为空,除非您希望每次尝试进行ssh连接时都输入passphrase。

注意:如果远程主机的~/.ssh目录中已经存在持有其他客户端公钥的authorized_keys文件,则需要将公钥附加到该文件中。

最新更新