Linux / コマンド / ssh - 暗号化されたリモート接続とコマンド実行
sshは、暗号化された接続でリモートサーバーにログインしたり、コマンドを実行したりするOpenSSHクライアントです。サーバーのアドレスとアカウントを指定して接続し、初めて接続する時はサーバーホストキーのフィンガープリントを確認する必要があります。
SSH(Secure Shell)は通信を暗号化し、サーバーの身元をホストキーで確認します。フィンガープリントは、鍵をハッシュ値として表した識別情報です。ユーザー認証にはパスワードや公開鍵などを使い、サーバーのホストキー確認とは別に行います。user@hostのuserはリモート側のアカウントです。コマンドを後ろへ指定すると、そのコマンドをリモートで実行します。server.example.com・server.example.testとアカウント名は、実際の値に置き換えてください。
基本的な文法
ssh [オプション] [ユーザー@]ホスト [リモートコマンド]
インストールされている実装とオプションは、配布版によって異なる場合があります。man sshで現在のシステムの説明を確認してください。
使用例
リモートログイン
接続先ではSSHサービスが動作し、指定したアカウントのログインとネットワーク接続が許可されている必要があります。サーバーの準備はLinux講座のSSH接続も参照してください。初回接続は、管理者などから別の信頼できる経路で入手したホストキーのフィンガープリントと照合して承認します。
ssh alice@server.example.com
別のSSHポートへの接続
サーバーがデフォルトポートではなく2222を使用する場合は、小文字の -p で指定します。
ssh -p 2222 alice@server.example.com
リモートコマンドを一度だけ実行
対話型シェルに入らずにリモートシステムのホスト名を確認します。
ssh alice@server.example.com hostname
初回接続時の確認手順
sshに初めて接続するサーバーの場合、ホストキーの指紋確認メッセージが表示されることがあります。サーバー管理者が提供した指紋と照合した上でのみ承認してください。
ssh user@server.example.test
初回接続時に表示される可能性のあるメッセージ形式:
The authenticity of host 'server.example.test' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?
確認した鍵と一致していれば承認し、通常は~/.ssh/known_hostsへホストキーを記録します。次回に鍵変更の警告が出た場合は、再インストールや正規の鍵交換だったかを独立した経路で確認し、記録を安易に削除しないでください。公開鍵認証用の鍵を用意する場合は、ssh-keygenによる鍵ペアの作成と指紋確認を参照し、秘密鍵のアクセス権と保管先を管理します。
接続に失敗した場合は、DNS名解決、TCPポート到達、サーバーのSSHサービス、認証段階ごとに確認してください。ssh -v ユーザー@ホストは交渉と認証がどこで止まっているかの手がかりを提供しますが、詳細ログを共有する際にはホスト名とユーザー情報が漏れる可能性があります。権限エラーの場合は、秘密鍵ファイルの権限も確認します。
主なオプションと形式
| オプション・形式 | 説明 |
|---|---|
-p ポート |
リモートSSHサーバーのポートを指定します。 |
-i 鍵ファイル |
使用する秘密鍵ファイルを指定します。 |
-J ジャンプホスト |
ジャンプホストを経由して対象に接続します。 |
-L ローカルポート:ホスト:ポート |
ローカル側の待ち受けから転送します。ホスト:ポートはSSHサーバー側から見た接続先です。 |
-N |
リモートコマンドは実行せず、主にフォワーディングに使用します。 |
-v |
接続・認証の過程を詳細に出力します。 |
使用する際の注意点
初めて接続する際に表示されるホストキーの指紋を無条件に承認しないでください。管理者から提供された指紋と別のルートで照合し、警告が変わった場合は中間者攻撃またはサーバーキーの交換の可能性を確認してください。秘密鍵は他人に渡さず、アクセス権を制限します。フォワーディングによってローカルサービスの公開範囲が変わる可能性があるため、バインドアドレスを確認してください。
よくある質問
SSH接続時にサーバーキーが変更されたという警告が出た場合は?
サーバーの再インストールやキーの交換の可能性もありますが、攻撃の可能性もあります。新しい指紋を管理者と独立したルートで確認するまでは、既存のキーを削除したり、検証をオフにしないでください。
公式ドキュメント
オプションの正確な動作や実装ごとの差異は、SSHに関する公式ドキュメントで確認できます。




