Bash sshコマンド
1. sshコマンドの使用方法
sshコマンドは、リモートマシンに安全に接続するために使用されます。
1.1 基本的な使い方
リモートホストに接続するには、ssh ユーザー名@ホスト名 の形式を使用します。
例:
ssh [email protected]
Linux raspberrypi 6.6.74+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.74-1+rpt1 (2025-01-27) aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Apr 10 13:09:32 2025 from 45.14.193.140
[email protected]:~ $2. SSHオプション
sshコマンドで使用できる、一般的なオプションをいくつか紹介します。
-p- ポートを指定-i- プライベートキー(秘密鍵)ファイルを使用-v- Verboseモード(詳細出力)を有効化-C- 圧縮を有効化-X- X11フォワーディングを有効化-o- コマンドラインで直接オプションを指定
2.1 -pオプション(ポート指定)
-pオプションを使用すると、リモートホストに接続するポートを指定できます。
デフォルトでは、SSHはポート 22 を使用します。
例:ポートを指定して接続
ssh -p 2222 [email protected]
[email protected]'s password:2.2 -iオプション(アイデンティティファイル)
-iオプションを使用すると、認証に使用するプライベートキー(秘密鍵)ファイルを指定できます。
特定のサーバーに対して専用のキーを持っている場合に非常に便利です。
例:プライベートキーを使用
ssh -i /path/to/private_key [email protected]
[email protected]:~ $2.3 -vオプション(Verboseモード)
-vオプションはVerboseモードを有効にし、SSH接続プロセスの詳細な情報を表示します。
接続がうまくいかない時のデバッグに役立ちます。
例:Verboseモード
ssh -v [email protected]
OpenSSH_9.6p1, OpenSSL 3.2.1 30 Jan 2024
debug1: Reading configuration data /home/users/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to example.com port 22.
debug1: Connection established.
.....2.4 -Cオプション(圧縮)
-Cオプションは圧縮を有効にします。ネットワーク経由で送信されるデータ量を削減し、データ転送速度を向上させることができます。
例:圧縮を有効化
ssh -C [email protected]
[email protected]'s password:2.5 -Xオプション(X11フォワーディング)
-Xオプションを使用すると、X11フォワーディングが可能になります。これにより、リモートサーバー上でグラフィカルアプリケーションを実行し、ローカル環境でその画面を表示することができます。
例:X11フォワーディング
ssh -X [email protected]
[email protected]'s password:2.6 -oオプション(オプションの指定)
-oオプションを使用すると、SSHの各種オプションをコマンドラインで直接指定できます。
設定ファイル(ssh_config)の設定を一時的に上書きしたい場合に便利です。
例:オプションを指定(ホストキーチェックの無効化)
ssh -o StrictHostKeyChecking=no [email protected]
[email protected]'s password:3. 一般的なトラブルシューティング
"Connection Refused"(接続拒否)や "Host Key Verification Failed"(ホストキー検証失敗)といった問題が発生することがあります。以下に解決のためのステップをまとめます。
- Connection Refused: リモートサーバーでSSHサービスが稼働しているか、また正しいポートを使用しているか確認してください。ファイアウォールの設定が接続をブロックしていないかも確認が必要です。
- Host Key Verification Failed: サーバーのホストキーが変更された場合に発生します。サーバーの身元を確認し、
known_hostsファイルから古いキーのエントリを削除して更新してください。 - Permission Denied: 権限設定とユーザー名を確認してください。また、サーバー側のSSH設定(sshd_config)で制限がかかっていないか確認が必要です。
- Timeouts: ネットワーク接続とサーバーのレスポンスを確認してください。必要に応じて、SSHのタイムアウト設定を調整してください。