私には 3 つのシステムがあります。SSH クライアントのみをインストールしたクライアントと、server_1 と server_2 です。SSH パブリック認証を使用しており、クライアントから server_1 と server_2 の両方に SSH 接続できます。サーバー 1 に同じ公開キーを保存し、エージェント転送を使用してサーバー 1 からサーバー 2 に SSH 接続し、秘密キーをクライアントのみに保持したいのですが、このシナリオをどのように実行すればよいか、至急教えてください。このリンクを使用していますが、方法がわかりません。
答え1
ssh-agent
まずクライアントにキーを記憶させるために呼び出す必要があります
ssh-agent -t 3600 ~/.ssh/private_key_rsa
(キーが に保存されていると仮定すると、無期限の有効期間が必要な場合は を~/.ssh/private_key_rsa
省略することもできます)-t 3600
-A
次に、オプションを使用してサーバーの1つにSSH接続します。
ssh -A server1
そこからserver2にsshで接続できるようになります
ssh server2
毎回オプションを指定したくない場合は-A
、次のコードを~/.ssh/config
(クライアント側とオプションで両方のサーバー側)に追加します。
Host server1
ForwardAgent yes
Host server2
ForwardAgent yes
これは任意の数のサーバーで機能します。短くするために、~/.ssh/config
ワイルドカードを導入することができます。例:
Host server?
ForwardAgent yes
答え2
サーバーホストをローカルホストに転送:
ssh -L localhost:22:localhost:22 user@host
または
ssh -N -f -L serverhost:22:localhost:22 user@server1
あなたの質問をもう一度読みました。
server1 に ssh で接続します:
ssh user@server1
次に、server2 に ssh で接続します。
クライアントから新しいターミナルに以下を実行します:
ssh user@server1
ssh user@server2
すると、2 つの接続が存在します。
- クライアントからサーバー 1
- クライアントからサーバー 1 ==> サーバー 2
ご希望の場合:
- クライアントからサーバー 1
- クライアントからサーバー 2 (同じキーを使用)
次のコマンドを実行するだけです。
クライアント側:
tmuxを使用するか、ターミナルを2つ開く
ssh user@server1
新しいターミナルの場合:
ssh user@server2
答え3
簡単な答えは、次のようにフラグを追加することです-A
。
ssh -A [user]@[hostname]