ssh

サーバーへのログイン、コマンド実行、暗号化トンネルの作成。

実行前の確認

初回接続時は、信頼できる経路でホスト鍵の指紋を照合してください。-N は転送のみを行い、以下のフォアグラウンドのトンネルは Ctrl+C で停止できます。-L の宛先は SSH サーバー側で名前解決・接続し、-R の宛先には手元のコンピュータから接続します。リモート待受はサーバーの転送ポリシーに従い、ループバックへのバインドは GatewayPorts にも依存します。ExitOnForwardFailure は初期設定を確認するもので、以後の全宛先への到達性を保証しません。-D は SOCKS であり VPN ではありません。クライアント側の設定と、対応している場合はリモート DNS の設定が必要です。詳細ログを共有する際は、アドレス、ユーザー名、鍵のパスを伏せてください。

使用例

リモートアカウントにログインし、ホスト鍵の確認と認証を行います。

ssh alice@server.example.com

ポート 2222 と鍵ファイルを指定。IdentitiesOnly で提示する認証用の鍵を制限します。

ssh -p 2222 -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes alice@server.example.com

ProxyJump(-J)で踏み台サーバーを経由します。

ssh -J alice@bastion.example.com alice@internal.example.com

ローカル転送:手元のポート 15432 からサーバー経由でデータベースへ接続します。

ssh -N -L 127.0.0.1:15432:db.internal.example.com:5432 -o ExitOnForwardFailure=yes alice@server.example.com

リモート転送:サーバーのループバックのポート 18080 から手元の 8080 へ接続します。

ssh -N -R 127.0.0.1:18080:127.0.0.1:8080 -o ExitOnForwardFailure=yes alice@server.example.com

127.0.0.1:1080 にローカル SOCKS の待受を作成します。

ssh -N -D 127.0.0.1:1080 -o ExitOnForwardFailure=yes alice@server.example.com

詳細ログを出力し、接続確立のタイムアウトを 10 秒に設定します。

ssh -vvv -o ConnectTimeout=10 alice@server.example.com

2 台の踏み台を順に経由します。各ホップをクライアントで認証し、すべてのホスト鍵を確認します。

ssh -J alice@jump1.example.com,alice@jump2.example.com alice@target.example.com

Host と Include の適用後の設定を表示します。接続情報が含まれる場合があります。

ssh -G alice@server.example.com

リモートコマンドを 1 つ実行してローカルに戻ります。リモートシェルに合わせて引用してください。

ssh alice@server.example.com 'uptime'

接続を作成・再利用し、確認後に終了します。~/.ssh を保護してください。主接続の終了は依存セッションも終了します。

ssh -M -S ~/.ssh/securepipes-%C -o ControlPersist=10m -fN alice@server.example.com
ssh -S ~/.ssh/securepipes-%C alice@server.example.com
ssh -S ~/.ssh/securepipes-%C -O check alice@server.example.com
ssh -S ~/.ssh/securepipes-%C -O exit alice@server.example.com

照会可能な項目、鍵アルゴリズム、暗号を表示します。クライアントの対応はサーバーの受け入れを保証しません。

ssh -Q help
ssh -Q key
ssh -Q cipher

known_hosts の登録とフィンガープリントを確認します。鍵の変更を信頼できる別経路で確認してから正しいホスト・ポートの記録を削除します。

ssh-keygen -F server.example.com -l
ssh-keygen -R server.example.com

スクリプト用に非対話モードと接続タイムアウトを設定します。認証とホストの信頼を事前に設定し、対話が必要なら失敗します。

ssh -o BatchMode=yes -o ConnectTimeout=10 alice@server.example.com

ProxyCommand と -W で踏み台経由で接続します。通常は ProxyJump が簡単です。両ホストの鍵を確認します。

ssh -o 'ProxyCommand=ssh -W %h:%p alice@bastion.example.com' alice@target.example.com

サーバーのループバックに SOCKS を開きます。他のローカルユーザーやプロセスも利用できる場合があり、転送許可が必要です。

ssh -N -R 127.0.0.1:1080 -o ExitOnForwardFailure=yes alice@server.example.com

暗号化された SSH キープアライブと接続タイムアウトを設定します。応答停止を検出しますが、再接続は保証しません。

ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ConnectTimeout=10 alice@server.example.com

オプションと使用例

-p portよく使う

指定したサーバーポートに接続します。

使用例
ssh -p 2222 alice@server.example.com
-i identity_fileよく使う

指定された秘密鍵ファイルを使用します。それを保護し、決して共有しないでください。

使用例
ssh -i ~/.ssh/id_ed25519 alice@server.example.com
-l login_name

リモートログイン名を指定します。

使用例
ssh -l alice server.example.com
-J destinationよく使う

SSH ジャンプ ホスト経由で接続します。

使用例
ssh -J alice@bastion.example.com alice@internal.example.com
-L address:port:host:hostportよく使う

ローカルリスニングポートを SSH サーバーから到達した宛先に転送します。

使用例
ssh -N -L 127.0.0.1:15432:db.internal.example.com:5432 alice@server.example.com
-R address:port:host:hostportよく使う

リモート リスニング ポートをローカル コンピュータから到達した宛先に転送します。サーバーポリシーによりバインドを制限できます。

使用例
ssh -N -R 127.0.0.1:18080:127.0.0.1:8080 alice@server.example.com
-D address:portよく使う

ローカル SOCKS リスナーを作成します。これを使用するように各クライアントを構成します。これはVPNではありません。

使用例
ssh -N -D 127.0.0.1:1080 alice@server.example.com
-Nよく使う

リモート コマンドを実行しないでください。転送のみに役立ちます。

使用例
ssh -N -D 127.0.0.1:1080 alice@server.example.com
-o option=valueよく使う

この呼び出しに対して ssh_config オプションを設定します。転送設定が成功しても、後で宛先に到達できることが保証されるわけではありません。

使用例
ssh -o ExitOnForwardFailure=yes alice@server.example.com
-F configfile

代替のクライアント構成ファイルを使用します。

使用例
ssh -F ~/.ssh/lab_config alice@server.example.com
-v / -vvvよく使う

診断出力を印刷します。 v 文字が増えると詳細が増加します。ログには機密性の高い接続情報が含まれる場合があります。

使用例
ssh -vvv alice@server.example.com
-4 / -6

それぞれ IPv4 のみまたは IPv6 のみを使用します。

使用例
ssh -4 alice@server.example.com
-C

圧縮を要求します。すでに圧縮されているトラフィックは改善されない可能性があります。

使用例
ssh -C alice@server.example.com
-T / -t

それぞれ、擬似端末を無効にするか、要求します。

使用例
ssh -t alice@server.example.com
-A

エージェント転送を有効にします。侵害されたリモート ホストは、転送されたエージェントに署名を要求する可能性があります。信頼できるホストでのみ使用してください。

使用例
ssh -A alice@server.example.com
-G

ホスト ルールと一致ルールを評価した後、有効なクライアント構成を出力します。

使用例
ssh -G lab
-V

インストールされている SSH クライアントのバージョンを出力します。

使用例
ssh -V

公式リファレンス

確認日:2026年10月27日