はじめに
こちら関連の記事です。
ssh-agent
を使用しても、結局パスワードを一度は入力しないといけません。
それをも自動化してしまおうというのが、今回の内容です。
ssh-agent の自動化
ログイン時に一度だけ起動する.bash_profile
に記載するのがよいかなと思います。
vim ~/.bash_profile
# ssh-agent if [ -z "$SSH_AUTH_SOCK" ] ; then eval `ssh-agent -s` ssh-add fi
そしてログアウト時に、きちんと後片付けを行います。
vim ~/.bash_logout
# ssh-agent if [ -n "$SSH_AUTH_SOCK" ] ; then eval `/usr/bin/ssh-agent -k` fi
これでターミナル起動時に、最初にsshのパスワードを聞かれることになります。 しかしこれも煩わしいので、Teratermマクロに仕込んでしまうことにしましょう。
パスワード入力の自動化
PASSWORD_NAME='passwordName' FILE_NAME='password' ;;;;;;;;;; cygconnect wait ':' getpassword FILE_NAME PASSWORD_NAME password sendln password end
上記getpassword
を使うことで、パスワードファイルのない初回はダイアログでパスワード入力を促されますが、2回目以降は保存したパスワードファイルから自動で読み込んでくれます。
PASSWORD_NAME
はパスワードとの紐付けに使うもので、何でもよいです。ユーザー名がわかりやすいかもしれません。
FILE_NAME
はパスワードが保存されるファイルで、この書き方だとマクロファイルと同じ場所に保存されます。
また、パスワードは平文ではなく暗号化されてます。
ファイルの中身はこんな感じ。******が暗号化されたパスワードです。
[Password] passwordName=********
Cygwinを例にしましたが、このマクロを実行すると、sshのパスワード入力までやってくれます。
おわりに
暗号化しているとはいえ、ローカルにパスワードが記述されていることへのリスクもあると思います。
こういうやり方もできるというご紹介でした。
以上です。