如何检查主机是否在您的known_host ssh中

bar*_*arp 11 ssh bash shell expect

我在我的脚本中使用以下命令,将主机添加到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"' 
 }
 }
 ')
Run Code Online (Sandbox Code Playgroud)

工作正常,但如果主机已经在known_hosts中,我需要在命令之前进行控制,如果已经在known_hosts中,则不需要执行命令.如何检查主机是否在known_hosts中?

com*_*857 29

尝试: ssh-keygen -F <hostname>

known_hosts如果找到主机名指纹并且命令返回0,将显示行,否则显示任何内容并返回命令1.