雑にテキストファイルを暗号化する
ssh公開鍵でファイルを暗号化する
zip付きパスワードみたいの作るのがなんかmacだと面倒? なんかソフト入れないといけないとかなんか面倒なので会社で行われていたやつをメモしておく。
GitHubの公開鍵をとってきて暗号化
実はGitHubの公開鍵は全世界に公開されてます。 https://github.com/mpon.keys ここのユーザー名を自分のものにしてみてください。 この鍵を使ってopensslでファイルを暗号化できます。
- 暗号化したいファイルを用意します
- おもむろに以下のシェルの
GITHUB_USERの変数を渡したい人にのユーザー名、INPUTファイル名を変更して、下記のコマンドを実行する
GITHUB_USER=mpon TMP_KEY=$GITHUB_USER.key TMP_PKCS=$GITHUB_USER.pkcs8 INPUT=passphrase OUTPUT=$GITHUB_USER-$INPUT-encrypted.txt curl https://github.com/$GITHUB_USER.keys | head -n1 > $TMP_KEY ssh-keygen -f $TMP_KEY -e -m PKCS8 > $TMP_PKCS openssl rsautl -encrypt -pubin -inkey $TMP_PKCS -in $INPUT -out $OUTPUT rm $TMP_KEY $TMP_PKCS
そうすると、mpon-passphrase-encrypted.txt
という暗号化されたファイルができます。
※ たくさん鍵を登録してる人はとりあえず一つ目の鍵でやるようになってます
GitHubのユーザーの秘密鍵で復号する
SSH_PRIVATE_KEY
の変数をGitHubの秘密鍵の場所に変更して、適宜INPUTファイル名を変更してopensslで復号します
下記のコマンドを実行すると decrypted.txt
というのができて、平文が手に入ります
SSH_PRIVATE_KEY=~/.ssh/your_id_rsa INPUT=mpon-passphrase-encrypted.txt OUTPUT=decrypted.txt openssl rsautl -decrypt -inkey $SSH_PRIVATE_KEY -in $INPUT -out $OUTPUT