0Pricing
Linux Server Deployment & SSH Mastery · レッスン

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 -l

Agentフォワーディングの概念

ローカルの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.com

ProxyCommand によるマルチホップ

古い 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:%p

Agent 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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. SSHポートフォワーディング(ローカル/リモート)
  2. SSHトンネルとSOCKSプロキシ
  3. SSHエージェントとマルチホップ
  4. SCP、SFTP、rsyncによる安全なファイル転送
← Linux Server Deployment & SSH Masteryに戻る