まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

雑にテキストファイルを暗号化する

ssh公開鍵でファイルを暗号化する

zip付きパスワードみたいの作るのがなんかmacだと面倒? なんかソフト入れないといけないとかなんか面倒なので会社で行われていたやつをメモしておく。

GitHubの公開鍵をとってきて暗号化

実はGitHubの公開鍵は全世界に公開されてます。 https://github.com/mpon.keys ここのユーザー名を自分のものにしてみてください。 この鍵を使ってopensslでファイルを暗号化できます。

  1. 暗号化したいファイルを用意します
  2. おもむろに以下のシェルの

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