web-dev-qa-db-ja.com

ホストキーを読み込めませんでした:/ etc / ssh_Host _ * _ key

このチェックを行うとき:

$ /usr/sbin/sshd -t

取得:

Could not load Host key: /etc/ssh_Host_rsa_key
Could not load Host key: /etc/ssh_Host_dsa_key

しかし、Sudoで同じチェックを行うと、すべて問題ありません。

$ Sudo /usr/sbin/sshd -t
$

なぜこれが起こるのか、私の標準ユーザーの何が問題なのか、そしてそれを修正する方法を誰かが知っていますか?

5
Drew

なぜこれが起こるのか、私の標準ユーザーの何が問題なのか、そしてそれを修正する方法を誰かが知っていますか?

何も悪いことはありません。 sshd(SSHデーモン)を非特権ユーザーとして実行しようとしています。

たとえば、私はMac OS X 10.9.5(Mavericks)を使用していて、/usr/sbin/sshd -tを実行するとまったく同じ「エラー」が発生します。

Could not load Host key: /etc/ssh_Host_rsa_key
Could not load Host key: /etc/ssh_Host_dsa_key

sshdはSSHデーモンであるため、これは予想されることです。dの後のsshに注意してください。 -これは、リモートSSHログイン要求をリッスンして待機するシステム上でSSHサーバーとして実行されます。したがって、常にが機能するにはroot/Sudo権限が必要になります。

したがって、これは「エラー」ではなく、非特権ユーザーとしてsshdのようなシステムデーモンを実行しようとしたときに予想される動作です。

おそらくあなたはssh -tを実行しようとしていますか? ssh-tオプションのマニュアルページで説明されているように:

疑似ttyの割り当てを強制します。これは、リモートマシン上で任意の画面ベースのプログラムを実行するために使用できます。これは非常に便利です。メニューサービスを実装する場合。複数の-tオプションは、sshにローカルttyがない場合でも、ttyの割り当てを強制します。

これにより、基本的に、現在の端末からリモートでコマンドを実行し、ローカルマシンで実行されているかのように出力をローカルに表示できます。したがって— このページで説明されているように —実際に完全にログインせずにリモートマシンでlsを実行したい場合は、次のコマンドを実行できます。

ssh -t [username]@[hostname] ls

lsの出力が画面に表示され、コマンドが完了するとすぐにssh接続が閉じます。

4
JakeGould

次のコマンドを実行して、不足しているキーを作成できます。

/usr/bin/ssh-keygen -A

参照: https://bbs.archlinux.org/viewtopic.php?id=165382

0
Dirc