即使known_hosts正确,主机密钥validation也失败

我正在运行Debian 7 Wheezy服务器,并且在通过SSH连接到其他服务器时遇到问题。 这个问题只发生在通过crontab运行SSH时,而不是以其他方式(以当然用户身份login)。

当通过crontab以这个用户的身份运行ssh命令时,出现以下问题:

Host key verification failed. 

我已经删除~/.ssh/known_hosts文件并手动连接到服务器,以使主机密钥正确。

当使用-v标志运行SSH时,我得到以下内容:

 debug1: read_passphrase: can't open /dev/tty: No such device or address Host key verification failed. 

如果我列出/dev/tty它有666个权限:

 crw-rw-rw- 1 root root 5, 0 Jun 21 15:49 /dev/tty 

在列出/dev/tty后,我也手动将权限设置为666,以便完全确定。

为什么SSH说它不能读取/ dev/tty ? 我已经探索了几个星期,没有find答案。 有人有线索吗?

无法使用代理(或至less提供密码短语的方式)无法使用脚本中的密码保护密钥进行连接,ssh守护进程正在等待不带tty的input。

请参阅: https : //unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt

SSH说它不能读取/dev/tty因为你没有从控制台调用它,而是从crontab调用它。 /dev/tty设备是当前进程的控制器terminal,当您从crontab启动进程时,它没有关联的terminal,因此无法访问该设备。

这里有一个更好的解释: https : //stackoverflow.com/questions/8514735/what-is-special-about-dev-tty