キーペアを作成 †$ 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 ← 秘密鍵 $ キーペアが作成できました。 秘密鍵で暗号化する †秘密鍵で暗号化・復号化してみます。 $ echo 'hoge' | openssl rsautl -encrypt -inkey sshkeygen > encrypted.out $ openssl rsautl -decrypt -inkey sshkeygen -in encrypted.out hoge 本来、秘密鍵で暗号化した情報は公開鍵で復号するのですが*1。 公開鍵で暗号化する †つぎは公開鍵で暗号化してみます。 $ echo 'hoge' | openssl rsautl -encrypt -pubin -inkey sshkeygen.pub > encrypted.out unable to load Public Key $ 失敗しました。公開鍵で暗号化するときは -pubinオプションをつけるのですが、それをつけてもエラーになるようです。 *.pubファイルをopenssl形式に変換?して、公開鍵で暗号化する †$ 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でつかえる形式に変換する。 †上記で作成した 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 のファイルには公開鍵の情報も含まれてるんですね、、。 秘密鍵ファイルから公開鍵を取り出す †$ 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 一致 :-) 関連リンク † |