秘密鍵 id_ed25519
どこに登録するか
- 公開鍵(.pub)
-
接続先サーバーの
~/.ssh/authorized_keysに1行追記します。 GitHub / GitLab / Bitbucket なら「SSH keys」設定画面へ貼り付け。 - 秘密鍵
-
自分の PC だけに置きます。通常は
~/.ssh/id_ed25519(または選んだアルゴリズム名)として保存し、権限をchmod 600に。 サーバーや Git ホストには絶対に上げないでください。 -
パスフレーズ付きで暗号化されます。自分の PC の
~/.ssh/id_ed25519にだけ置き、権限はchmod 600。 使うときにパスフレーズを聞かれます(サーバーのログインパスワードとは別です)。 サーバーや Git ホストには絶対に上げないでください。 - パスフレーズ
-
秘密鍵の解除用です。接続のたびに聞かれます。毎回の入力を避けたいときは
ssh-add ~/.ssh/id_ed25519でエージェントに登録します(エージェント起動中だけ再入力不要)。 - このページについて
- 鍵はすべてブラウザ内(Web Crypto)で生成され、どこにも保存されません。 タブを閉じると消えます。使い終わったらダウンロード済みファイルだけ残してください。
公開鍵をリモートへ一発登録
相手サーバーへは最初だけパスワードで SSH ログインできれば十分です。
登録元の PC から次のいずれかを実行すると、対話でパスワードを聞かれたあと
authorized_keys へ公開鍵が追記されます(サーバー側で手編集不要)。
上の「ユーザー名」「ホスト名」「パスフレーズ」欄を入れると、下の説明とコマンド例が差し替わります。
-
1. いちばん簡単 —
ssh-copy-idデフォルト鍵(例:
~/.ssh/id_ed25519.pub)を送る場合:ssh-copy-id user@hostこのページでダウンロードした公開鍵を指定する場合:
ssh-copy-id -i ~/Downloads/id_ed25519.pub user@host -
2.
ssh-copy-idが無いとき —cat | sshcat ~/Downloads/id_ed25519.pub | ssh user@host 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'.pub ファイルを使わず、公開鍵の1行をそのまま書き込むとき:
ssh user@host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && printf '%s\n' 'ssh-ed25519 AAAA...your-public-key... comment' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" -
3. クリップボードの公開鍵をそのまま送る
ページで「コピー」したあと(Linux / Wayland 例):
wl-paste | ssh user@host 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'X11 なら
xclip -selection clipboard -o、macOS ならpbpasteに置き換え。 -
4. 秘密鍵もまとめて手元へ置く → 登録
mkdir -p ~/.ssh && chmod 700 ~/.ssh mv ~/Downloads/id_ed25519 ~/.ssh/ && mv ~/Downloads/id_ed25519.pub ~/.ssh/ chmod 600 ~/.ssh/id_ed25519 && chmod 644 ~/.ssh/id_ed25519.pub ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host -
5. パスフレーズ付き鍵をエージェントに載せる(任意)
接続のたびのパスフレーズ入力を減らしたいとき:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519ここでパスフレーズを一度入力すると、エージェント稼働中は省略できます。
-
56. ポート番号が 22 以外のとき
ssh-copy-id -i ~/Downloads/id_ed25519.pub -p 2222 user@hostcat ~/Downloads/id_ed25519.pub | ssh -p 2222 user@host 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys' -
67. 登録できたか確認
ssh -i ~/.ssh/id_ed25519 user@hostログイン用パスワードを聞かれずに入れれば成功です。
秘密鍵のパスフレーズを聞かれたあと(または
ssh-add済みならそのまま)入れれば成功です。サーバーのログインパスワードを聞かれる場合は公開鍵側の登録を見直してください。
ssh 短い名前だけで繋ぐ(接続元の設定)
接続元 PC の ~/.ssh/config にホスト別名を書いておくと、
長いオプションの代わりに短い名前だけで入れます。
秘密鍵・ユーザー名・ポート・実ホスト名をここに集約します。
-
1. ディレクトリと権限
mkdir -p ~/.ssh chmod 700 ~/.ssh -
2. 秘密鍵を置く(まだなら)
mv ~/Downloads/id_ed25519 ~/.ssh/ chmod 600 ~/.ssh/id_ed25519パスフレーズ付きの秘密鍵です。置き場所と権限は同じです。
-
3. エージェントに載せる(任意)
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 -
34. 設定ファイル
~/.ssh/configを作る / 追記する新規作成の例(エディタでも可):
cat >> ~/.ssh/config <<'EOF' Host myserver HostName example.invalid User yourname Port 22 IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes EOF chmod 600 ~/.ssh/config各行の意味:
Host… 打ち込む短い名前HostName… 実際の IP または FQDNUser… ログインユーザーPort… ポート(22 なら省略可)IdentityFile… このページで作った秘密鍵のパスIdentitiesOnly yes… 指定鍵だけ使うAddKeysToAgent yes… 初回パスフレーズ入力後、エージェントに載せられる(任意)
-
45. 接続
ssh myserver公開鍵を相手側へ登録済みなら、これだけで入れます。
公開鍵を相手側へ登録済みなら接続できます。初回(またはエージェント未登録時)は秘密鍵のパスフレーズを聞かれます。
-
56. どの設定が効くか確認
ssh -G myserver | rg -i '^(hostname|user|port|identityfile) 'rgが無ければgrep -Eに置き換えてください。
この Web を使わずコマンドラインだけで行う
ブラウザを使いたくない場合は、接続元 PC のターミナルだけで鍵の生成からリモート登録まで完結できます。 上で選んだアルゴリズム・コメント・接続先に合わせてコマンド例を差し替えています。
-
1. 鍵ペアを生成(
ssh-keygen)パスフレーズなし(非対話)の例:
パスフレーズあり(対話で入力)の例。実行後にパスフレーズを聞かれます:
ssh-keygen -t ed25519 -C "ssh-key-generator" -f ~/.ssh/id_ed25519 -N ""パスフレーズを付けたいときは末尾の
-N ""を外すと、実行時に入力を求められます。非対話でパスフレーズを渡すなら
-N 'あなたのパスフレーズ'を付けます(履歴に残る点に注意)。 -
2. 公開鍵をリモートへ登録
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@hostssh-copy-idが無いとき:cat ~/.ssh/id_ed25519.pub | ssh user@host 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'.pub ファイルを使わず、公開鍵の1行をそのまま書き込むとき:
ssh user@host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && printf '%s\n' 'ssh-ed25519 AAAA...your-public-key... comment' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"キーを生成済みなら、上の例は実際の公開鍵に差し替わります(公開鍵のみ。秘密鍵は使いません)。
-
3. パスフレーズ付き鍵をエージェントへ(任意)
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 -
34. 接続確認
ssh -i ~/.ssh/id_ed25519 user@hostログイン用パスワードを聞かれなければ成功です。
秘密鍵のパスフレーズを聞かれたあと入れれば成功です(
ssh-add済みなら省略可)。 -
45. 短い名前で繋ぐ(任意)
あとの手順は上の「短い名前だけで繋ぐ」と同じです。
~/.ssh/configにHost/HostName/User/IdentityFileを書けばssh myserverだけで接続できます。