2026.06.29(月) / 23:11
SSH接続コマンドを理解する ー ssh -i -p USER@SERVER を分解する ー
- ID
- 38678
- Published
- 2026-06-29 23:11
- Modified
- 2026-06-29 23:11
- Author
- khiro
- Categories
- デフォルト
SSH鍵を作成した後は、実際にサーバーへ接続する。
今回使用したコマンドは次の通りである。
ssh -i ~/.ssh/id_ed25519_xserver -p 10022 USER@SERVER
最初は「このコマンドを実行すれば接続できる」という認識しかなかった。
しかし、それぞれのオプションの意味を理解すると、どのサーバーへ接続する場合でも応用できる知識になる。
今回は、このコマンドを一つずつ分解して整理していく。
ssh
ssh
ssh は Secure Shell の略である。
ネットワーク経由でサーバーへ安全にログインするためのコマンドである。
例えば、自宅のMacからレンタルサーバーやVPS、クラウドサーバーへ接続し、ターミナル上で操作できる。
-i
-i ~/.ssh/id_ed25519_xserver
-i は identity file の略である。
SSH接続時に利用する秘密鍵を指定するオプションである。
今回指定した
~/.ssh/id_ed25519_xserver
は秘密鍵である。
SSHは、この秘密鍵を利用してサーバーへ認証を行う。
もし -i を指定しない場合は、
~/.ssh/id_ed25519
や
~/.ssh/id_rsa
など、SSHが標準で探す鍵が利用される。
複数のサーバー用に鍵を管理している場合は、-i を指定すると目的の鍵を利用できる。
-p
-p 10022
-p は port の略である。
接続先のポート番号を指定する。
SSHの標準ポートは
22
である。
しかし、セキュリティ向上のために、22番以外のポートへ変更しているサーバーも多い。
今回利用したサーバーでは
10022
がSSH接続用ポートとして設定されていた。
そのため、接続時に
-p 10022
を指定する必要があった。
USER
USER
ここにはサーバーのユーザー名を指定する。
例えば
ubuntu
ec2-user
root
など、サーバーごとに異なる。
ユーザー名によって利用できる権限も変わる。
SERVER
SERVER
ここには接続先サーバーを指定する。
指定方法は様々である。
ホスト名
example.com
IPアドレス
192.168.1.100
クラウドサーバー
ec2-xxx.amazonaws.com
など、接続したいサーバーを指定する。
USER@SERVER
USER@SERVER
は
どのユーザーで
どのサーバーへ
接続するのかを表している。
例えば
ssh user@example.com
なら、
example.com に user としてログインする
という意味になる。
実際の流れ
今回のコマンド全体を図にすると次のようになる。
ローカルPC
│
├── 秘密鍵
│ ~/.ssh/id_ed25519_xserver
│
└── SSH接続
│
│ ポート10022
▼
サーバー
│
├── 公開鍵
└── USERアカウント
サーバーは登録済みの公開鍵を持っている。
ローカルPCは秘密鍵を持っている。
この2つが一致すると認証が成功し、指定したユーザーとしてログインできる。
コマンド全体の意味
ssh -i ~/.ssh/id_ed25519_xserver -p 10022 USER@SERVER
を日本語で表すと、
「秘密鍵
id_ed25519_xserverを使い、10022番ポート経由で、指定したユーザーとしてサーバーへSSH接続する。」
という意味になる。
まとめ
今まではSSH接続のコマンドをそのままコピーして利用していた。
しかし、それぞれのオプションの意味を理解すると、
- 接続する秘密鍵
- 接続ポート
- 接続ユーザー
- 接続先サーバー
を自由に変更できるようになる。
SSHはGitHubやGitLabだけでなく、レンタルサーバーやVPS、クラウドサービスなど幅広い環境で利用されている。
コマンドを暗記するのではなく、一つずつの意味を理解しておくことで、さまざまな環境でも応用できるようになる。