转自
今天下午碰到了意见很坑的事情,我使用Sequel Pro通过ssh连接我服务器的MySQL时,怎么也连不上。一直提醒我ssh连接失败了,当时忘了截图啦,但大概提示如下:
SSH connection failed!
The SSH Tunnel has unexpectedly closed
格式个上面的一样,一个标题一个信息。说是ssh隧道意外关闭,我的账号、密码等都输入的没有问题,而且SecureCRT也连的好好的,不太明白是怎么回事。Google了好久,没有解决。
后来我在日志里的debug信息里看到一条
“RSA host key has changed and you have requested strict checking.”,
于是我又Google后才知道,ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。就是这个导致我一直无法通过ssh去连接我的MySQL。
知道问题出在哪,那就好解决了。
vim ~/.ssh/known_hosts
可以看到通过ssh连接过的纪录,每条纪录占一行,ip开头。很容易能找到出问题的服务器ip,把那条删除,然后再回去用ssh连接MySQL试试看。没问题了。