パスワードを平文ではなく暗号化する
たとえばopensslを用いれば、パスワードを平文保存せずに済みます。
パスワードありの秘密鍵を作成する場合
$ ssh-keygen -f “秘密鍵ファイルの名称”
Enter passwordを入力すればOK 秘密鍵を利用するときにPWを聞かれます
パスワードなしの秘密鍵を作成する場合
$ ssh-keygen -f “秘密鍵ファイルの名称”
Enter passwordを空のままでEnter
-f オプション付きで実行すると、鍵はカレントディレクトリに保存されます
$ ssh-keygen
とだけ実行すると、~/.ssh/id_rsaのようにデフォルトでホームディレクトリの.sshディレクトリ内にid_rsaが作成されます。この場合秘密鍵に名前指定は不要です。
以降は、$ ssh-keygenで秘密鍵を作成したものとして話をすすめます
上記で作成した秘密鍵で平文パスワードを暗号化する
文字列foo(パスワード)を秘密鍵で暗号化し、暗号化文字列ファイルpw.rsaを作成
$ echo "foo" | openssl rsautl -encrypt -inkey ~/.ssh/id_rsa > pw.rsa
($ echo "暗号化したい文言" | openssl rsautl -encrypt -inkey file/path/to/秘密鍵 > 暗号化文字列ファイル)
暗号化文字列ファイルpw.rsa を復号し標準出力に表示するには下記
$ openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in pw.rsa
つまり、任意のスクリプトファイルのパスワードを格納している変数Passwordに (例:シェルスクリプトの場合)
Password=$(openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in pw.rsa)
とすれば、パスワードの平文記述をせずに済みます
以上