今回は、ssh接続のパスワード入力を自動化するsshpassコマンドについて書き留めておきたいと思います。
通常、ssh接続は対話型となっています。
下記の様な感じで、、、
$ ssh hoge@***.***.***.***
hoge@***.***.***.***'s password:
このままだと、シェルスクリプトでssh接続を使用したい場合に不具合が起こります。
ここで利用できるのがssh接続を非対話型で自動で行えるsshpassコマンドです。
先ず、マニュアルを見てみます。
『sshpass(1) - Linux man page』
書き方は下記となります。
sshpass -p 'パスワード' ssh ユーザー@ホスト
それでは、使ってみます。
$ sshpass -p 'plumsa' ssh hoge@***.***.***.***
非対話的にssh接続できました!
ちなみに、実際の使用に際しては下記の様に「
-o StrictHostKeyChecking=no」を指定した方が良いと思います。
これを指定しないと、初回接続時に厳格なホスト鍵チェックの確認メッセージが出力され、シェルスクリプトで自動化したssh接続が成功しないという結果となります。
sshpass -p 'パスワード' ssh -o StrictHostKeyChecking=no ユーザー@ホスト
最後になりますが、この方法はパスワードをべた書きする方法ですのでセキュリティ上の問題があります。
使用する際は、検討が必要となるでしょう。
以上です!
【参考サイト】
『sshpassを使ってパスワード指定のSSH接続を行ってみる(パスワード指定自動ログイン)』
『sshpassでssh/scpの対話型のパスワード入力を自動化する』
『SSHPass を利用する』