linux 将公钥添加到known_hosts文件

nxowjjhe  于 2023-01-25  发布在  Linux
关注(0)|答案(4)|浏览(389)

我试图从服务器A复制一个公钥到服务器B的known_hosts文件中。它们都是Linux服务器。最初我想打开公钥文件并将其内容复制到known_hosts文件中,但我怀疑这不是正确的方法。有人知道正确的方法是什么吗?
我的公钥格式为ssh-rsa AADGD...
有人能帮忙吗?
谢谢!

3b6akqbq

3b6akqbq1#

几天前,我在超级用户上回答了几乎类似的问题。

  • 格式不同
  • 每个服务器上都有不同的主机密钥(类型)(确保粘贴实际使用的主机密钥)
  • ssh-keyscan可以为您创建格式

否则,只需在你的密钥前面加上服务器IP地址(你也可以在逗号后面加上主机名),删除行尾的注解,就可以了。

11.22.33.44 ssh-rsa AADGD...

还有一点要注意,如果你使用HashKnownHosts yes(Debian和Ubuntu都使用),你需要重新散列你的known_hosts,比如:

ssh-keygen -Hf ~/.ssh/known_hosts
nwnhqdif

nwnhqdif2#

我刚刚遇到这个问题,下面是我的处理方法:
随着时间的推移,通过

ssh-keyscan server-name >> ~/.ssh/known_hosts

.ssh/known_hosts中给了我重复的条目。
其他需要我创建.ssh目录的手动方法还不存在,等等。
我决定让ssh来处理它:

ssh -o StrictHostKeyChecking=no server-name ls

-o StrictHostKeyChecking=no选项自动对

The authenticity of host 'server-name (12.345.678.900)' can't be established.
RSA key fingerprint is XXXXXXX.
Are you sure you want to continue connecting (yes/no)?

message(在此插入有关随机连接到未知计算机的所有安全警告)。
ls命令只是一个执行并强制SSH断开连接的fluff命令,您可以将其更改为任何您喜欢的fluff命令。
ssh将负责创建.ssh目录(如果需要),只添加密钥的一个副本,等等。
操作系统:macOS 10.14

7eumitmz

7eumitmz3#

我就是这么做的。
1.使用以下命令在主机服务器上生成密钥。

*ssh-keyscan -t rsa完整服务器名称

1.现在复制突出显示的部分(如图所示),并将此键附加到源服务器上的“known_host”文件中。当然,对于不同的环境,此文件的位置可能不同。

hjqgdpho

hjqgdpho4#

假设您有一个名为publickey.pub的文件,那么请执行以下操作:

  1. scppublic key .pub安装到所需的服务器
    1.为AWS EC2 ubuntu示例运行
sudo /bin/bash -c "cat /$USER_PATH/public_key.pub  >> $USER_PATH/.ssh/authorized_keys"

1.对于known_hosts =运行

sudo /bin/bash -c "cat /$USER_PATH/public_key.pub  >> $USER_PATH/.ssh/known_hosts"

1.使用ssh测试连接
注意:确保你检查了你的公钥格式。到目前为止我看到的都是以加密算法开始的,例如ssh-RSA

相关问题