将 ssh 公钥添加到远程主机authorized_keys
文件的常用方法包括使用ssh-copy-id
命令以及使用 bash 运算符(例如>>
附加到文件)。
问题是ssh-copy-id
此命令不会检查密钥是否已存在。这会给脚本和自动化带来麻烦,因为后续运行可能会添加重复的键条目。
所以我使用以下脚本(在 rhel 服务器版本 7.8 上)
more /tmp/test.sh
#!/bin/bash
PUB_KEY=` cat /root/.ssh/id_rsa.pub `
grep -q -F \"$PUB_KEY\" ~/.ssh/authorized_keys 2>/dev/null || echo \"$PUB_KEY\" >> ~/.ssh/authorized_keys
我不确定这是否是最好的方法,所以我很乐意获得其他开箱即用的想法*