はじめに
SSH接続をする際、毎回長いパスワードやポート番号、ポートフォワーディングのオプション(-L)を打ち込むのが苦痛になっていませんか?
今回は、ssh-copy-id を使った公開鍵認証の導入から、SSH Config を使った「一発ログイン」の設定までを解説します。
1. 鍵ペアの作成
まず、手元の端末で鍵ペアを作成します。すでに作成済みの場合はスキップしてください。
ssh-keygen -t ed25519
2. ssh-copy-id で公開鍵をサーバーへ登録
ここがポイントです。このコマンドを使うと、サーバーの authorized_keys への追記を手動で行う必要がなくなります。
※ 今回はSSHの待ち受けポートが特殊な(22番ではない)ケースを想定しています。
# -p でSSHポートを指定
ssh-copy-id -p <SSH_PORT> <USER>@<REMOTE_IP>
一度だけパスワードを入力すれば、次からは鍵認証でログインできるようになります。
トンネル部分(-L オプション)を使う場合
% ssh -p <SSH_PORT> -L <LOCAL_PORT>:<DEST_INTERNAL_IP>:<DEST_PORT> <USER>@<RELAY_SERVER_IP>
各項目の意味
-
<LOCAL_PORT>: 自分のPC側で待ち受けるポート(例:13389) -
<DEST_INTERNAL_IP>: 踏み台サーバーから見た、接続先マシンの内部IP -
<DEST_PORT>: 接続先マシンのポート(例:RDPなら3389) -
<RELAY_SERVER_IP>: 踏み台となるサーバー(外から見える方)のIP
3. SSH Config で接続を簡略化する
さらに快適にするため、~/.ssh/config に設定を書き込みます。
Host <NICKNAME>
HostName <RELAY_SERVER_IP>
Port <SSH_PORT>
User <USER>
LocalForward <LOCAL_PORT> <DEST_INTERNAL_IP>:<DEST_PORT>
4. 実行結果:パスワードなしでログイン
設定完了後、以下のコマンドだけでログインできるようになります。
% ssh <NICKNAME>
実際のログイメージ:
% ssh <NICKNAME>
...
Last login: Thu May 7 18:21:58 2026 from <SOURCE_IP>
<USER>@<HOSTNAME>:~$
まとめ
ssh-copy-id を使うことで、安全かつ確実にかつての「パスワード手入力」から卒業できました。設定も数分で終わるので、まだの方はぜひ試してみてください!