how to check if a host is in your known_host ssh
Solution 1
Try: ssh-keygen -F <hostname>
Will show the known_hosts
line(s) if the hostname fingerprint is found and the command returns 0
, otherwise nothing is shown and the command returns 1
.
Solution 2
According to ssh-keygen(1) man page
-F hostname Search for the specified hostname in a known_hosts file, listing any occurrences found. This option is useful to find hashed host names or addresses and may also be used in conjunction with the -H option to print found keys in a hashed format.
barp
Updated on June 08, 2022Comments
-
barp almost 2 years
I have the following command works in my script that adds the host to the known hosts in 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"' } } ')
Works fine, but I need to control before the command if the host is already in known_hosts and not execute command if it is already in known_hosts. How can i check if an host is in known_hosts?
-
secondman about 11 yearsThis doesn't seem to do anything, or even print anything to the screen. Strange.
-
complex857 about 11 years@VinceKronlein, That should happen when no match found for your hostname. Only full matches returned.
-
secondman about 11 yearsYeah that was my bad. I wasn't using just the hostname ie: google.com, I was trying to look for a key for a git repo using the git host ie: [email protected] ... once I used just the hostname alone it worked great.
-
maoizm over 2 yearsif you like I trying to find out if there exists the key of SSH server listening to non-standard port (other than 22), use the following command:
ssh-keygen -F "[gerrit.example.com]:29418"