- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-08-14T10:48:48+00:00","default:masatomix","masatomix")
#contents
** キーペアを作成 [#afad5a08]
$ ssh-keygen -t rsa -b 4096 -C "masatomix@ki-no.org" -f sshkeygen
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in sshkeygen.
Your public key has been saved in sshkeygen.pub.
The key fingerprint is:
08:14:ad:fc:50:e5:d4:b3:ee:d3:9d:fa:10:2f:81:ab masatomix@ki-no.org
$ ls -lrt
-rw-r--r-- 1 ec2-user ec2-user 745 9月 5 07:40 sshkeygen.pub ← 公開鍵
-rw------- 1 ec2-user ec2-user 3247 9月 5 07:40 sshkeygen ← 秘密鍵
$
キーペアが作成できました。
**秘密鍵で暗号化する [#z1a2c1be]
秘密鍵で暗号化・復号化してみます。
$ echo 'hoge' | openssl rsautl -encrypt -inkey sshkeygen > encrypted.out
$ openssl rsautl -decrypt -inkey sshkeygen -in encrypted.out
hoge
本来秘密鍵で暗号化した情報は公開鍵で復号するのですが((秘密鍵のなかに公開鍵の情報も含まれているんでしょうかね。。よくわからない))。
本来、秘密鍵で暗号化した情報は公開鍵で復号するのですが((秘密鍵のなかに公開鍵の情報も含まれているんでしょうかね。。よくわからない))。
**公開鍵で暗号化する [#gca8570e]
公開鍵で復号してみます。
つぎは公開鍵で暗号化してみます。
$ echo 'hoge' | openssl rsautl -encrypt -pubin -inkey sshkeygen.pub > encrypted.out
unable to load Public Key
$
失敗しました。公開鍵で暗号化するときは -pubinオプションをつけるのですが、それをつけてもエラーになるようです。
** *.pubファイルをopenssl形式に変換?して、公開鍵で暗号化する [#yec397b7]
$ ssh-keygen -e -m PKCS8 -f sshkeygen.pub > sshkeygen.pub.pem
$ echo 'hoge' | openssl rsautl -encrypt -pubin -inkey sshkeygen.pub.pem > encrypted.out
今度は公開鍵で暗号化出来ました。
$ openssl rsautl -decrypt -inkey sshkeygen -in encrypted.out
hoge
秘密鍵で復号も出来ました。うまくいきましたね。
**ターミナルで作成した鍵を、Javaでつかえる形式に変換する。 [#y8044414]
上記で作成した sshkeygen/sshkeygen.pub について。
$ openssl rsa -pubout -in sshkeygen -out public.der -outform DER ←公開鍵
$ openssl pkcs8 -topk8 -nocrypt -in sshkeygen -out private.pk8 -outform DER ←秘密鍵
これらのファイル private.pk8 / public.der はJavaで読み込むことが可能です。
やっぱり、ssh-keygen のファイルには公開鍵の情報も含まれてるんですね、、。
** 秘密鍵ファイルから公開鍵を取り出す [#ie8ba5f0]
$ ssh-keygen -t rsa -b 4096 -C "masatomix@ki-no.org" -f foobar
Generating public/private rsa key pair.
...
| .o +.O*X*|
+----[SHA256]-----+
$ ls -lrt
-rw-r--r-- 1 sysmgr sysmgr 745 Aug 14 19:44 foobar.pub
-rw------- 1 sysmgr sysmgr 3381 Aug 14 19:44 foobar
$ cat foobar.pub
ssh-rsa AAAAB3NzaC1yc...sr4pQ14QKdCYhgblanYinTJNNM5bIla64PENgNO4JgRgFOQ== masatomix@ki-no.org
$ ssh-keygen -y -f ./foobar
ssh-rsa AAAAB3NzaC1yc...sr4pQ14QKdCYhgblanYinTJNNM5bIla64PENgNO4JgRgFOQ== masatomix@ki-no.org
一致 :-)
**関連リンク [#y6d9a1c2]
-[[OpenSSLを使用してファイルをRSA暗号化する - momoto.github.io>http://momoto.github.io/blog/2012/10/14/rsa-encryption-and-decryption/]]
-[[シェルスクリプトの平文パスワードをセキュアにする方法 - 余白の書きなぐり>http://auewe.hatenablog.com/entry/2014/04/14/213319]]
-[[OpenSSLで作成したRSAの鍵を使ってJavaで暗号化・復号するサンプル - BLOG.IK.AM>https://blog.ik.am/entries/327]]
-[[OpenSSLで生成したRSA鍵をJavaで読み込む - unhurried>http://unhurried.hatenablog.com/entry/openssl_java_rsa_key]]