ssh-keygen とは?(基本編)

Why?

What for?

  • ssh-keygen とは認証用の鍵を生成、管理、および変換するOpenSSHのコマンド
  • Diffie-Hellman 群交換 (DH-GEX) で使われる群を生成
  • 鍵失効リスト (Key Revocation List, KRL) を生成
  • 与えられた鍵は revoke されたものかどうかを検査

生成できる鍵(identiry file)タイプ

-t dsa | ecdsa | ed25519 | rsa | rsa1

よくある使用法

key pair を作る

$ ssh-keygen -t rsa -C XXX@example.comX -f ~/.ssh/id_rsa.kz
$ ssh-keygen -t hoge
unknown key type hoge
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/kz-engineer/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/kz-engineer/.ssh/id_dsa.
Your public key has been saved in /Users/kz-engineer/.ssh/id_dsa.pub.
The key fingerprint is:
XXXXXXXXXXXXXXXXX kz-engineer@kz-engineer.local
The key's randomart image is:
+--[ DSA 1024]----+
...
+-----------------+

あるホストに対応づいた鍵をknown_hostsファイルの中から探す

$ ssh-keygen -F github.com
# Host github.com found: line 3 type RSA
github.com ssh-rsa XXXXXXXXXXXXXXXXXXX==

よくある失敗

  • パスフレーズを忘れた
    • 変更はできても、忘れたものを取り戻すことはできないので、再生成すること。

TODO List

  • TODO: /etc/rc でシステム管理者が鍵を作成?
  • TODO: OpenSSH について深く知りたい
  • TODO: SSH1がどれくらいまずいのか
  • TODO: 鍵のビット数を縮めるとどれくらいまずいのか
  • TODO: The key fingerprint とか The key's randomart image って可愛いけど何?
  • TODO: Diffie-Hellman 群交換 (DH-GEX) とは?
  • TODO: それぞれの鍵タイプで何がおいしいの?
  • TOOD: 鍵失効リスト (Key Revocation List, KRL)とは?