known_hosts が正しいにもかかわらず、ホスト キーの検証に失敗しました

known_hosts が正しいにもかかわらず、ホスト キーの検証に失敗しました

私は Debian 7 Wheezy サーバーを実行していますが、SSH 経由で他のサーバーに接続する際に問題が発生しています。この問題は、crontab 経由で SSH を実行している場合にのみ発生し、それ以外の場合は発生しません (もちろん、同じユーザーとしてログインしている場合)。

このユーザーとして crontab 経由で ssh コマンドを実行すると、次の問題が発生します。

Host key verification failed.

ホスト キーが正しいことを確認するために、ファイルを削除し~/.ssh/known_hosts、手動でサーバーに接続しました。

フラグ付きで SSH を実行すると-v、次のようになります。

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

リストすると、/dev/tty666 個の権限があります。

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

/dev/tty確実にするために、リストした後で権限を手動で 666 に設定しました。

SSH が / を読み取れないと言うのはなぜですかdev/tty? 何週間もこの件を調べていますが、答えが見つかりません。誰か手がかりを持っていますか?

答え1

エージェント (または少なくともパスフレーズを提供する方法) なしでは、スクリプトからパスフレーズで保護されたキーを使用して接続することはできません。ssh デーモンは、tty なしでは提供できない入力を待機しています。

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

答え2

/dev/ttySSH は、コンソールからではなく crontab から呼び出したため、読み取れないと言っています。/dev/ttyデバイスは現在のプロセスのコントローラー ターミナルであり、crontab からプロセスを起動すると、関連付けられたターミナルがないため、そのデバイスにアクセスできません。

ここにもっと良い説明があります:https://stackoverflow.com/questions/8514735/what-is-special-about-dev-tty

関連情報