ssh-keygen后找不到公钥
时间: 2023-08-15 07:58:33 浏览: 251
如果你在运行 `ssh-keygen` 后找不到公钥,可能是因为默认情况下 `ssh-keygen` 命令会将公钥保存在 `~/.ssh/id_rsa.pub` 文件中,而私钥保存在 `~/.ssh/id_rsa` 文件中。请尝试以下步骤来查找公钥:
1. 使用以下命令检查是否存在 `id_rsa.pub` 文件:
```
ls ~/.ssh/id_rsa.pub
```
如果该文件存在,可以使用 `cat` 命令来查看公钥内容:
```
cat ~/.ssh/id_rsa.pub
```
2. 如果 `id_rsa.pub` 文件不存在,你可以通过重新生成密钥对来解决问题。运行以下命令生成新的密钥对:
```
ssh-keygen
```
按照提示操作,并确保在询问密钥文件名时不要更改默认值。
3. 生成新的密钥对后,使用上述步骤检查是否成功生成公钥文件,并查看其内容。
如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助你解决问题。
相关问题
1.请在 master 节点使用 ssh-keygen-t rsa 生成公钥,并将公钥复制到 slave1、 slave2 以及 master 自身,完成 ssh 免密登录功能。
在Master节点上通过SSH密钥对实现无密码登录的一般步骤如下:
1. **生成SSH密钥对**:
打开终端,首先确保你已经安装了`ssh-keygen`命令行工具,如果没有,可以使用包管理器如`apt-get`(Ubuntu/Debian系统)或`yum`(Red Hat/CentOS系统)安装。然后,运行:
```
$ ssh-keygen -t rsa
```
按照提示,输入文件名(通常默认即可),按回车键继续,选择“否”不提供密码保护(如果需要额外安全性,可以选择其他选项并设置密码)。
2. **查看生成的公钥和私钥**:
密钥将在~/.ssh目录下创建,其中公钥是id_rsa.pub,私钥是id_rsa。你可以通过cat命令查看它们的内容:
```
$ cat ~/.ssh/id_rsa.pub
```
3. **复制公钥到Slave节点**:
使用`ssh-copy-id`命令将公钥内容粘贴到每个slave节点的.ssh/authorized_keys文件中。例如:
```
$ ssh slave1 'mkdir -p ~/.ssh && echo "内容" >> ~/.ssh/authorized_keys'
```
将"内容"替换为你刚才看到的Master节点公钥内容。
4. **配置免密登录**:
Slave节点也需要允许从特定的IP地址(通常是Master的IP)无密码登录。编辑~/.ssh/known_hosts,添加Master节点的记录:
```
$ ssh slave1 'echo "Master_IP_address" >> ~/.ssh/known_hosts'
```
5. **在Master节点也加入自己的公钥**:
同样操作,将Master的公钥复制到自身的authorized_keys中,以便可以从自身无密码登录。
现在,Master节点应该能够无需密码就直接SSH连接到slave1和slave2。
windows怎么使用ssh-keygen保存ssh的公钥认证
在 Windows 上使用 SSH,可以使用 PuTTY 工具和 OpenSSH 工具。下面是使用 OpenSSH 工具生成 SSH 公钥和私钥的步骤:
1. 打开命令提示符或 PowerShell。
2. 输入以下命令:
```
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
其中,-t 指定密钥类型,rsa 是一种常用的密钥类型;-b 指定密钥长度,4096 是一个安全的长度;-C 是注释,可以输入你的电子邮件地址或其他说明。
3. 然后系统会提示你输入保存密钥的文件名和路径。可以使用默认的文件名和路径,也可以输入自己想要的文件名和路径。比如:
```
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): /c/Users/you/.ssh/my_ssh_key
```
4. 然后系统会提示你输入密码,可以留空不输入密码。如果设置了密码,每次使用 SSH 连接时都需要输入密码。
5. 最后,系统会生成公钥文件和私钥文件。公钥文件的默认名称为 id_rsa.pub,私钥文件的默认名称为 id_rsa。
6. 将公钥文件的内容复制到要连接的服务器的 authorized_keys 文件中。authorized_keys 文件通常位于服务器的 ~/.ssh 目录下,如果没有则需要手动创建。可以使用以下命令将公钥文件内容复制到 authorized_keys 文件中:
```
cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> ~/.ssh/authorized_keys'
```
其中,user 是远程服务器的用户名,hostname 是远程服务器的主机名或 IP 地址。
7. 完成以上步骤后,就可以使用私钥认证连接到远程服务器了。可以使用以下命令连接到远程服务器:
```
ssh -i ~/.ssh/id_rsa user@hostname
```
其中,-i 指定使用的私钥文件,user 是远程服务器的用户名,hostname 是远程服务器的主机名或 IP 地址。
阅读全文