我正在尝试将来自A服务器的公钥复制到B服务器的known_hosts文件中。它们都是Linux服务器。最初,我考虑打开公钥文件并将其内容复制到known_hosts文件中,但我怀疑那不是正确的方法。有人知道正确的方法吗?
我的公钥格式为ssh-rsa AADGD...
有人能帮忙吗?
谢谢!
我几天前在SuperUser上回答了一个几乎相似的问题。重要部分如下:
ssh-keyscan
可以为您创建格式否则,只需在密钥前加上服务器IP地址(逗号后面也可以添加主机名),删除行末的注释,您就可以了。格式如下:
11.22.33.44 ssh-rsa AADGD...
还有一点需要注意,如果你使用HashKnownHosts yes
(Debian和Ubuntu默认是这样的),你需要重新hash你的known_hosts
文件,例如:
重新hash known_hosts
文件:
ssh-keygen -H -f ~/.ssh/known_hosts
还有一点需要注意,如果你使用HashKnownHosts yes
(Debian和Ubuntu默认是这样的),你需要重新hash你的known_hosts
文件,例如:
重新hash known_hosts
文件:
ssh-keygen -H -f ~/.ssh/known_hosts
ssh-keygen -Hf ~/.ssh/known_hosts
刚刚遇到这个问题,以下是我处理的方法:
随着时间的推移,通过机械复制文件
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)?
提示(在此处插入有关连接到未知计算机的所有安全注意事项)。
ls
命令只是一个无用的命令,执行完后会强制SSH断开连接。您可以更改它为任何无用的命令。
ssh将负责创建.ssh
目录(如果需要),添加密钥的唯一副本等操作。
平台:macOS 10.14
publickey.pub
的文件,请按照以下步骤操作:
公钥.pub
通过scp
命令复制到您想要的服务器上。sudo /bin/bash -c "cat /$USER_PATH/public_key.pub >> $USER_PATH/.ssh/authorized_keys"
known_hosts
,运行如下命令:sudo /bin/bash -c "cat /$USER_PATH/public_key.pub >> $USER_PATH/.ssh/known_hosts"
ssh
测试连接。注意:确保检查您的公钥格式。我到目前为止看到的公钥都以加密算法开头,例如ssh-RSA
。
server_ip_address ssh-rsa AADGD...
是吗? - Trung Tran/sbin/ifconfig -a
并得到了大约5种不同类型的IP地址。注意,这里的“gotcha”是指“捕获到了”,表示发现了一个问题或陷阱。 - Trung TranB服务器
连接到A服务器
时要使用的IP地址。如果有不同,请检查man sshd
末尾的文件和术语。 - Jakuje