aoishiの備忘録

備忘録

SSH秘密鍵から公開鍵を作成する

はじめに

SSH秘密鍵から公開鍵って生成できるのかと思って調べてみたので、手順をまとめておきます。

環境

秘密鍵から公開鍵を生成できるか確認する方法

SSH秘密鍵と公開鍵のペア作成

カレントディレクトリに、test_keyという名前で秘密鍵を、test_key.pubという名前で公開鍵を作成します。

$ ssh-keygen -t rsa -b 4096 -f test_key

$ ls -al test_key*
-rw------- 1 aoishi aoishi 3247 12月  2 00:35 test_key
-rw-r--r-- 1 aoishi aoishi  746 12月  2 00:35 test_key.pub

SSH秘密鍵から公開鍵を作成

ssh-keygenコマンドに-yオプションを付与し、-fオプションで秘密鍵ファイルを指定することで、そのペアとなる公開鍵が生成できます。

$ ssh-keygen -y -f test_key

復元したSSH公開鍵との比較

試しに、ペアで作成した時の公開鍵と、後から生成した公開鍵とで差分を比較してみます。

$ ssh-keygen -y -f test_key | diff test_key.pub -
1c1
< ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTSzQjqHpUxl2tDhqawT3HFrvq5ACq+7IoTIGxUapiX1bmeV9f1EJHHAuAp4d2YJvaOfawxJoRAgUKnwPxYn5o62ANffyzo36C9H0SsIg+/QVTqfErTUpNGzGo/ATP99Oin1XY3hyCOdghhR4fU2cWbTKwGpPzAMeED012qwgOG12UaA5Us9xdgtyo8MXax36IYrletbsSUtS90K1zw+WWYhJBpBa54R6T/0SQdtA0sIxVrYhZ/mbv3VgP2atI7kMiCHA4MHbZe4rFbHnwG5QkyCGi+2+leoH81u8FF5pSxgyT+iY8tnq7mqqojFYAnyj2tbOfk3nOKBzftfTg05CjNrs4wZyqXEgpsY6BgxMxDdE6mWwjC2PqejjmXkfhjDoywaClRpFEqJV6/3zKzidilajJMH2suowio2dYT01rUdUFyUdQRi2a2ynlX1y0tKnAc0E86evC+sTeddRukc1ka6tFT0CVBsP+MYHe2v6Qq8OwOKItKPSsoUv95Ufw2Hagv4Q4MdrasowilDNdeg4B78jcZektAZ3ofEvfTIia6ae6XxDE8PNHrrhQkDB7kuzPH9wuaixChMt2D3IyHgEFXmWNkEAz2Nj1p+MRGTwNrnUBAWMROO/r2ejMpgbbi44HfLcsBd2Zay+dyJgo+VHe7RIph9CzIEg8S1NozoznpQ== aoishi@ope01.private
---
> ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTSzQjqHpUxl2tDhqawT3HFrvq5ACq+7IoTIGxUapiX1bmeV9f1EJHHAuAp4d2YJvaOfawxJoRAgUKnwPxYn5o62ANffyzo36C9H0SsIg+/QVTqfErTUpNGzGo/ATP99Oin1XY3hyCOdghhR4fU2cWbTKwGpPzAMeED012qwgOG12UaA5Us9xdgtyo8MXax36IYrletbsSUtS90K1zw+WWYhJBpBa54R6T/0SQdtA0sIxVrYhZ/mbv3VgP2atI7kMiCHA4MHbZe4rFbHnwG5QkyCGi+2+leoH81u8FF5pSxgyT+iY8tnq7mqqojFYAnyj2tbOfk3nOKBzftfTg05CjNrs4wZyqXEgpsY6BgxMxDdE6mWwjC2PqejjmXkfhjDoywaClRpFEqJV6/3zKzidilajJMH2suowio2dYT01rUdUFyUdQRi2a2ynlX1y0tKnAc0E86evC+sTeddRukc1ka6tFT0CVBsP+MYHe2v6Qq8OwOKItKPSsoUv95Ufw2Hagv4Q4MdrasowilDNdeg4B78jcZektAZ3ofEvfTIia6ae6XxDE8PNHrrhQkDB7kuzPH9wuaixChMt2D3IyHgEFXmWNkEAz2Nj1p+MRGTwNrnUBAWMROO/r2ejMpgbbi44HfLcsBd2Zay+dyJgo+VHe7RIph9CzIEg8S1NozoznpQ==

差分を確認する限り、当初ペアで作成した公開鍵にはコメント(aoishi@ope01.private)が付いていますが、後から生成した公開鍵にはついていようです。

コメントがあったほうが何かと便利なので、適宜追加しておくと良いですね。

ちなみに、diffコマンドはパイプで標準入力を渡すことで - でその入力を参照して差分比較することができます。