ssh-keygen コマンド
使い方
ssh-keygen
コマンドを使って RSA 鍵のペアを作成する。
$ ssh-keygen -t rsa -b 4096 -C "user@example.com" -f ~/.ssh/github_rsa
接続先に ~/.ssh/github_rsa.pub
の内容を登録する。
ssh-keygen
コマンドを使って Ed25519 鍵のペアを生成する。
$ ssh-keygen -t ed25519 -C "user@example.com" -f ~/.ssh/github_ed25519
接続先に ~/.ssh/github_ed25519.pub
の内容を登録する。
参考:
ssh-keygen コマンドの使い方 | hana_shin の Linux 技術ブログ
2017年版 SSH 公開鍵認証で使用する秘密鍵ペアの作り方 – Qiita
お前らの SSH Keys の作り方は間違っている – Qiita
SSH Key を Ed25519 に変更した | fu9da
SSH で ed25519 鍵を使うようにした | @znz blog
GitHub で Ed25519 鍵をつかう | 尋常でないもふもふ
ssh-keygen を用いて秘密鍵と公開鍵を作る Windows 10 と Linux の違い – Qiita
ssh-keygen – 認証用の鍵を生成 | Webkaru
ssh-keygen コマンド – SSH の公開鍵と秘密鍵を作成する | @IT
新しい SSH キーを生成して ssh-agent に追加する | GitHub Docs [公式]
Windows 用 OpenSSH キーの管理 | Microsoft Docs [公式]
Upgrade Your SSH Key to Ed25519 | Risan Bagja Pradana
Setup SSH Ed25519 keys | brian4286
パスフレーズを確認する
ssh-keygen
コマンドに -y
オプションを指定し、-f
オプションに秘密鍵ファイルを指定して実行する。パスフレーズを訊かれるので、パスフレーズを入力して生成時のパスフレーズと一致していれば標準出力に公開鍵が出力される。
$ ssh-keygen -y -f ~/.ssh/id_rsa
参考:
ssh の秘密鍵のパスフレーズを設定していたかどうか思い出せないとき | Appirits spirits
暗号アルゴリズム
- RSA:4096 bit 推奨 (1024 bit は解読の危険性あり/2048 bit であれば現在のところ一応の安全性は担保される)
- DSA:離散対数問題を用いた電子署名アルゴリズム
- ECDSA:楕円曲線を用いた電子署名アルゴリズム
- EdDSA / Ed25519:ツイストエドワーズ曲線を用いたエドワーズ曲線電子署名アルゴリズムの実装 (256 bit 固定長)
参考:
SSH は RSA 鍵より ED25519 鍵の方が強固で速い | らくがきちょう
SSH 認証に最強の Ed25519 鍵を使おう | LFI
2017年版 SSH 公開鍵認証で使用する秘密鍵ペアの作り方 – Qiita
ssh キーのキータイプはなにがいいのか | Machine Morning
公開鍵と秘密鍵のサイズに関する考慮事項 | IBM Knowledge Center
電子署名 EdDSA (ed25519) の数的構造 – Qiita
電子署名と公開鍵暗号方式 | 電子署名・認証センター (esac.jipdec.or.jp)
Digital Signature Algorithm – Wikipedia
エドワーズ曲線デジタル署名アルゴリズム – Wikipedia
Schnorr 署名 – 30年の時を超えて注目を集める電子署名 | びりあるの研究ノート
ラウンド
暗号鍵生成時に Ed25519 で使用される KDF のラウンド回数を指定するには ssh-keygen
コマンドに -a
オプションを指定する。
$ ssh-keygen -t ed25519 -a 64
参考:
Average ed25519 Passphrase Verification Time vs KDF Rounds | Roger So
How many KDF rounds for an SSH key? – Cryptography Stack Exchange
man ページ
ssh-keygen(1) | man ページ (nxmnpg.lemoda.net)
ssh-keygen(1) | Linux man page (linux.die.net)
ssh-keygen(1) | Linux manual page (man7.org)
ssh-keygen(1) | OpenBSD manual pages