プロキシコマンドを使用してSSHパスワードなしのログインを実行することはできません。

プロキシコマンドを使用してSSHパスワードなしのログインを実行することはできません。

サーバーが2つあります。サーバーAを介してのみサーバーBに接続できます。私の~/.ssh/configファイルから:

Host serverB
  Hostname serverb
  User root
  ForwardAgent yes
  Port 22
  ProxyCommand ssh user@serverA nc %h %p

serverAにログインして入力するとssh root@serverBパスワードを要求せずに接続されますが、ssh ServerBローカルコンピュータに入力するとServerBのパスワードを求めます。なぜ?

答え1

ProxyCommandパイプを介して外部を接続するためのトンネルのみが提供されていますssh

ssh serverBこれにより、以前のアカウントserverAのキーを使用できるようになりますserverA

クライアントシステムでこれを実行したときにssh serverB開始したコマンドを介して接続するという事実は、魔法のようにserverAのキーへのアクセスを提供しません。ncserverA

クライアントエージェントにserverAのキーを追加する必要があります。

たとえば、

ssh-add <(ssh serverA 'cat .ssh/id_rsa')

serverAにキーを追加します.ssh/id_rsa(上記のksh93 / bash / zsh構文)。

答え2

問題:

  1. serverBのパスワードを尋ねることはどのくらい確実ですか? serverAに尋ねることもできます。
  2. プロキシを渡す必要はありません。この場合、serverBと直接ハンドシェイクします。 serverBとはserverAハンドシェイクにはなりません。
  3. サーバーAのキーをクライアントに追加する必要はありません。繰り返しますが、サーバーAを介してのみサーバーBと直接通信します。したがって、これを行う理由はなく、セキュリティ上のリスクもあります。 。
  4. いつssh serverA- パスワードを尋ねますか?それでは、serverAのAuthorized_hostsに公開鍵をインストールすることを検討しましたかssh-copy-id serverA
  5. -vvv と Pastebin/filebin/post 出力として実行

答え3

完全な答えはありません。いくつか確認するだけです。両方のシステムで unix ユーザーのホームディレクトリの権限を確認します。両方のボックスで、$ HOME、$ HOME / .ssh、および.sshの下のすべてのファイルに対するディレクトリ権限を確認します。 SSHのバージョンを確認してください。また、2 つのボックスの SSH 構成ファイルを比較します。

しかし、過去にもこのようなことが何度も起こりました。この2つのために起こるのでしょうか?
1. ディレクトリ権限が正しくありません。 2. $HOME/.ssh/ に無効なサーバーキーがあります。

関連情報