Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I can connect to another Ubuntu machine in my LAN via SSH. On both of then PC's I installed openssh-server Install openssh-server but from another Ubuntu computer I can not connect to my PC via SSH and I got this error:

"Host key verification failed..."

share|improve this question

migrated from stackoverflow.com May 28 '11 at 12:38

This question came from our site for professional and enthusiast programmers.

    
Dó you use host names or IP-addresses? –  Thorbjørn Ravn Andersen May 27 '12 at 13:21
    
Not similar but I got the same error but due to a different problem: serverfault.com/questions/494916/… –  zengr Aug 28 '13 at 19:18

6 Answers 6

up vote 37 down vote accepted

"Host key verification failed" means that the host key of the remote host was changed.

Ssh stores the host keys of the remote hosts in ~/.ssh/known_hosts. You can either edit that text file manually and remove the old key (you can see the line number in the error message), or use

ssh-keygen -R hostname

(which I learnt from the answer to Is it possible to remove a particular host key from SSH's known_hosts file?).

share|improve this answer

If you are running in certain remote/scripting situations where you lack interactive access to the prompt-to-add-hostkey, work around it like this:

$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime

Warning: Permanently added 'something.example.com,10.11.12.13' (RSA) to the list of known hosts.

share|improve this answer
1  
+1, this is an ugly solution, but in some cases of automated monitoring processes that work with dymaic ip-connected devices, this is a simple and acceptable solution. –  Ninsuo Nov 11 '13 at 14:34

Also sometimes there is situation when you are working on serial console, then checking above command in verbose mode -v will show you /dev/tty does not exist, while it does.

ssh -v user@hostname

In above case just remove /dev/tty and create a symlink of /dev/ttyS0 to /dev/tty.

rm /dev/tty
ln -s /dev/ttyS0 /dev/tty

As an alternative, add id_rsa.pub to the remote location, so password is not prompted and you get login access.

share|improve this answer
3  
+1 for advising to use -v parameter; this can help a lot when debugging ssh problems. –  daniel kullmann Jul 24 '12 at 19:10
    
Agreed. May save my bacon, thanks. –  djhaskin987 Mar 31 at 19:24

In my case, this was caused by a udev problem - there was no /dev/tty device node. The solution for me was just:

sudo mknod -m 666 /dev/tty c 5 0

share|improve this answer

Well, it simply because the second ubuntu requires connection by key and not password.

I suggest you use sudo dpkg-reconfigure openssh-server on your pc, and then it should work properly. It will reset the configuration for openssh and should come back to a default password authentication.

Second possibility is that there's already a key for your other ubuntu in you PC, and that it changed thus being not recognized anymore. In this case, you'll have to edit the file .ssh/authorized_keys to remove the problematic line identifying your ubuntu.

share|improve this answer

pico ~/.ssh/known_hosts and delete all lines, after just reconnect and you will get a new key.

share|improve this answer
    
This is a dangerous solution, because you will remove ALL your host keys. The accepted solution, ssh-keygen -R hostname is better. –  msanford Mar 24 at 20:52

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.