SSHエージェントとマルチホップ
SSHエージェントを活用して鍵をスムーズに管理し、深い階層にあるネットワークへアクセスするためのマルチホップSSH接続を設定します。
「SSHエージェントとマルチホップ」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
SSH Agent:利便性の鍵
サーバーに接続するたびにSSHキーのパスフレーズを入力するのに疲れていませんか。SSH agentが役立ちます。
- 秘密鍵を安全に保管するバックグラウンドプログラムです。
- セッションごとに一度だけ、パスフレーズで鍵のロックを解除します。
- これにより、パスフレーズを再入力せずに複数のサーバーへ接続でき、利便性とセキュリティの両方が向上します。
SSH agentを起動する
鍵を追加する前に、SSH agentを起動する必要があります。通常はバックグラウンドプロセスとして実行されます。
次のコマンドで起動し、シェルから使用できるように設定できます。
eval "$(ssh-agent -s)"Agentに鍵を追加する
Agentが実行中になったら、秘密鍵を追加できます。ssh-addコマンドを使用します。
- 鍵のパスフレーズの入力を求められます。
- 鍵はAgentが停止するか、明示的に削除するまで読み込まれたままになります。
読み込まれている鍵を確認するには、ssh-add -lを使用します。
ssh-add ~/.ssh/id_rsa
ssh-add -lAgentフォワーディングの概念
ローカルのSSH鍵をServer Aに保存せずに、あるサーバー(Server A)から別のサーバー(Server B)へ接続する必要がある場合があります。
Agentフォワーディングを使用すると、リモートサーバーから開始された接続の認証をローカルのSSH agentに処理させることができます。ローカルのAgentを一時的にリモートホストへ拡張するようなものです。
Agentフォワーディングを使用する
Agentフォワーディングを有効にするには、最初のサーバー(ジャンプホスト)への接続時に-Aフラグを追加するだけです。
その後、ジャンプホストからローカルの鍵を使って別のサーバーへ接続できます。鍵をジャンプホストに保存する必要はありません。これは強力なセキュリティ機能です。
ssh -A user@jump_host
# Now, from jump_host, connect to target_server
ssh user@target_serverマルチホップ SSH:深いネットワークへのアクセス
対象サーバーがローカルマシンから直接アクセスできず、中継サーバー(「ジャンプホスト」)を経由した場合にのみアクセスできるとしたら、どうすればよいでしょうか。
マルチホップ SSHは SSH チェーンとも呼ばれ、1台以上の中間サーバーを経由して最終的な接続先に接続できます。
ProxyJump によるマルチホップ
マルチホップ SSH を設定する最も簡単で推奨される方法は、~/.ssh/config ファイルで ProxyJump ディレクティブを使用することです。
これにより、SSH クライアントはまず JumpHost に接続し、そこから TargetServer への接続を確立します。
Host TargetServer
HostName 192.168.1.100
User myuser
ProxyJump jump_host_user@jump.example.comProxyCommand によるマルチホップ
古い SSH クライアントや、より複雑な構成では、ProxyCommand を使うと柔軟に対応できます。これは対象サーバーへの接続を確立するコマンドを実行します。
ssh -W %h:%p の部分は、標準入力と標準出力を対象ホストおよびポートに転送するよう SSH に指示します。
Host TargetServer
HostName 192.168.1.100
User myuser
ProxyCommand ssh jump_host_user@jump.example.com -W %h:%pAgent Forwarding とマルチホップの組み合わせ
これらの強力な機能は組み合わせて使用できます。マルチホップの構成でエージェント転送を使えば、パスフレーズを何度も入力する必要がなくなります。
ジャンプホストの設定として ~/.ssh/config に ForwardAgent yes を追加するか、ジャンプホストへの接続時に ssh -A を使用してください。これにより、ローカルのエージェントを使って最終的な対象サーバーでも認証できます。
Host JumpHost
HostName jump.example.com
User jump_user
ForwardAgent yes
Host TargetServer
HostName 192.168.1.100
User target_user
ProxyJump JumpHostクイックチェック:SSH の機能
SSH Agent とマルチホップ SSH について、次の文を考えてみましょう。正しいものはどれでしょうか。
まとめ:シームレスで安全なアクセス
このレッスンでは、SSH の高度なテクニックを2つ習得しました。
- SSH Agent:ロック解除済みの鍵を保存し、パスフレーズの繰り返し入力を不要にすることで、利便性と安全性を高めます。
- Agent Forwarding:ローカルエージェントの機能をリモートサーバーに安全に拡張し、ジャンプホストからローカルの鍵を使って認証できるようにします。
- マルチホップ SSH:中間のジャンプホストを経由して、深く分離されたネットワークにアクセスできます。
ProxyJumpまたはProxyCommandで簡単に設定できます。
これらのツールは、複雑なサーバーインフラを効率的かつ安全に管理するために不可欠です。
よくある質問
「SSHエージェントとマルチホップ」レッスンは無料ですか?
はい。「SSHエージェントとマルチホップ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
「SSHエージェントとマルチホップ」で何を学びますか?
SSHエージェントを活用して鍵をスムーズに管理し、深い階層にあるネットワークへアクセスするためのマルチホップSSH接続を設定します。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「SSHエージェントとマルチホップ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。