主なファイルの場所
- ユーザの秘密鍵 …
~/.ssh/id_rsa
- ユーザの公開鍵 …
~/.ssh/id_rsa.pub
- ホストの秘密鍵 …
/etc/ssh/ssh_host_rsa_key
- ホストの公開鍵 …
/etc/ssh/ssh_host_rsa_key.pub
- 接続したことのあるホスト一覧 …
~/.ssh/known_hosts
- 接続を受け入れる公開鍵一覧 …
~/.ssh/authorized_keys
秘密鍵の操作
表示
$ cat {秘密鍵ファイル}
-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxx
-----END RSA PRIVATE KEY-----
書いておいて何だがむやみに表示するものではないと思う。
長さ表示
$ openssl rsa -text -noout -in {秘密鍵ファイル} | head -1
Private-Key: (2048 bit)
公開鍵の生成
$ ssh-keygen -yf {秘密鍵ファイル} > {公開鍵ファイル}
公開鍵の操作
表示
$ cat {公開鍵}
ssh-rsa xxxxxxxx== comment
長さと fingerprint 表示
$ ssh-keygen -lf {公開鍵}
2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx id_rsa.pub (RSA)
鍵ペア生成
ユーザの鍵ペア生成
$ ssh-keygen
ホストの鍵ペア生成し直し
# shred -u /etc/ssh/*_key /etc/ssh/*_key.pub
# service sshd restart
外部ホスト関連
ホストの公開鍵を外部から取得
$ ssh-keyscan {ホスト名}
実行例
$ ssh-keyscan github.com
github.com ssh-rsa xxxxxxxxxxxx==
接続したことのあるホスト情報を削除
$ ssh-keygen -R {ホスト名}
~/.ssh/known_hosts から該当行が消える。