我的脚本中有以下命令可以将主机添加到ssh中的已知主机。
VAR2=$(expect -c '
spawn ssh -o StrictHostKeyChecking=no '"$REMOTE_HOST_USER@$REMOTE_HOST_IP"'
expect "*?assword:*"
send "'"$REMOTE_HOST_PASSWD"'\r"
expect {
"Permission denied, please try again." {
exit '"$WRONG_PASSWORD"'
}
}
')
工作正常,但是如果主机已经在known_hosts中,我需要在命令之前进行控制,如果已经在known_hosts中,则不需要执行命令。如何检查主机是否在known_hosts中?
答案 0 :(得分:27)
尝试:ssh-keygen -F <hostname>
如果找到主机名指纹并且命令返回known_hosts
,将显示0
行,否则不会显示任何内容,命令将返回1
。
答案 1 :(得分:1)
根据ssh-keygen(1)手册页
-F hostname在known_hosts文件中搜索指定的主机名,列出找到的所有匹配项。此选项对于查找散列很有用 主机名或地址,也可以与。一起使用 -H选项以散列格式打印找到的键。