ssh - 在 unix 服务器中找不到 id_rsa.pub。我可以再生它吗? id_rsa(私钥)存在

标签 ssh public-key

我想要做的是将 key 复制到另一台主机。

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

我得到错误:

/usr/bin/ssh-copy-id: 错误: 未能打开 ID 文件 '[homedir].ssh/id_rsa.pub':

所以没有公钥。那么它在哪里呢?我尝试使用命令
sudo find / -name id_rsa.pub

但它只找到了我在我的测试目录中通过实验生成的一个。我尝试从测试目录发送实验,但是它不断地询问释义并且在我继续粘贴时不发送。

所以有问题。

我可以使用
ssh-keygen -t rsa

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

并想要覆盖私有(private) id_rsa key 。恐怕这可能会刹车。

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

最佳答案

以防万一其他人来这里寻找 OP 问题的答案......并直接回答该问题(即,如何在 .pub key 丢失的情况下重新生成它,而您只有私钥)...

这是答案:

从私钥重新生成 .pub key

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
-y option 是指示 ssh-keygen 的命令输出您的公钥。

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

关于ssh - 在 unix 服务器中找不到 id_rsa.pub。我可以再生它吗? id_rsa(私钥)存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26421475/

相关文章:

linux - 通过在端口 443 上使用 ssh 避免流量整形

maven-2 - maven 发布插件 - wagon 因 ssh 身份验证失败,但 snapshort 和发布部署工作 - 嗯?

php - 如何让自己摆脱 FTP 而转而使用版本控制

c# - 使用证书公钥验证 java 中的签名

java - 帮助使用 Python 验证 RSA 签名文本

encryption - "key container"到底是什么?

linux - 在 shell 脚本中使用 ssh 连接的 mysqldump

java - Java 中的 SSH 与命令和文件

ssh - 没有密码的CentOS scp无法正常工作

php - 将 RSA 公钥从 XML 转换为 PEM (PHP)