Bash 速習チュートリアル

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のタイムアウト設定を調整してください。