ssh-keygen – SSH 鍵を生成・管理するコマンド

リモートアクセス
スポンサーリンク

ssh-keygen コマンドは、SSH 接続に利用する公開鍵・秘密鍵ペアを生成・管理するためのコマンドです。
パスワードなしのログインや、GitHub/GitLab などのサービス認証に広く使われます。

構文(Syntax)

ssh-keygen [オプション]

主なオプション一覧

オプション説明使用例
(なし)対話的に新しい鍵ペアを生成(デフォルト: ~/.ssh/id_rsassh-keygen
-t <type>鍵の種類を指定(rsa, ed25519, ecdsa など)ssh-keygen -t ed25519
-b <bits>鍵長を指定(RSA の場合 2048 以上推奨)ssh-keygen -t rsa -b 4096
-f <file>出力ファイル名を指定ssh-keygen -f ~/.ssh/mykey
-C <comment>コメント(メールアドレスなど)を追加ssh-keygen -t ed25519 -C "me@example.com"
-N <passphrase>パスフレーズを設定ssh-keygen -N "mypassword"
-y秘密鍵から公開鍵を出力ssh-keygen -y -f ~/.ssh/id_rsa
-l公開鍵のフィンガープリントを表示ssh-keygen -l -f ~/.ssh/id_rsa.pub
-eOpenSSH ↔︎ RFC4716 形式に変換ssh-keygen -e -f id_rsa.pub
-p既存の秘密鍵のパスフレーズを変更ssh-keygen -p -f ~/.ssh/id_rsa

実行例

新しい RSA 鍵を作成

ssh-keygen -t rsa -b 4096 -C "me@example.com"

出力例(対話式):

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

Ed25519 鍵を作成(推奨)

ssh-keygen -t ed25519 -C "me@example.com"

出力ファイル名を指定して作成

ssh-keygen -t rsa -b 2048 -f ~/.ssh/mykey

秘密鍵から公開鍵を出力

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

公開鍵のフィンガープリントを確認

ssh-keygen -l -f ~/.ssh/id_rsa.pub

出力例:

4096 SHA256:abcd1234... me@example.com (RSA)

秘密鍵のパスフレーズを変更

ssh-keygen -p -f ~/.ssh/id_rsa

エラー例(存在しない鍵ファイル)

ssh-keygen -y -f ~/.ssh/notfound

出力例:

load failed

関連コマンド

  • ssh : SSH 接続を行うコマンド。
  • ssh-copy-id : 公開鍵をリモートサーバーにコピーする。
  • ssh-agent : 秘密鍵をキャッシュして再入力を省略する。

備考

  • 鍵の種類の推奨順: ed25519 > ecdsa > rsa
  • 公開鍵は ~/.ssh/id_xxx.pub、秘密鍵は ~/.ssh/id_xxx に保存される。
  • GitHub/GitLab などで利用する場合、公開鍵 (.pub) をサービスに登録する。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント