linux sshpassを使ってsshやscpでパスワードの入力を自動化する方法

更新:2018.4.8

目次

パスワードの入力を自動化する方法はいくつかありますが、sshpassを使うと割と簡単に実現できます。

まずはsshpassをインストールします。

sudo apt install sshpass

導入は完了です。

sshログインを自動化してコマンドを実行する

sshpassを利用してパスワードを入力し、ssh接続したのち、コマンドを実行する例になります。

[]で囲んでいる個所を、任意の値に変更してください。

sshpass -p [password] ssh -o StrictHostKeyChecking=no [user name]@[host name] [command]

scpでファイルのダウンロードを自動化する

sshpassを利用してパスワードを入力し、scpコマンドでサーバのファイルをローカルにダウンロードする例になります。

[]で囲んでいる個所を、任意の値に変更してください。

sshpass -p [password] scp -o StrictHostKeyChecking=no [remote user name]@[host name]:[remote file pass] [loacl file path]

[password]部分をファイルから読み込ませることもできます。

-pを-fに変更して、パスワードが書かれたファイルを指定すればOKです。

sshpass -f [password filename] scp -o StrictHostKeyChecking=no [remote user name]@[host name]:[remote file pass] [loacl file path]

rsyncも自動化する

rsyncもsshの方法を応用することで、自動ログインできるようになります。

sshpass -p [password] rsync [local file path] [remote user name]@[host name]:[remote file path]

パスワードを環境変数から読み込ませたい

パスワードをコマンドに入れたくない、パスワードファイルにも書きたくない。という場合は、「SSHPASS」という名前の環境変数にパスワードをセットしておき、 -pや-fの代わりに「-e」をオプションに指定することで、環境変数からパスワードを取得して、実行してくれます。

sshpass -e ssh -o StrictHostKeyChecking=no [user name]@[host name] [command]

まとめ

Linux関連記事










Linux tips
2008/05/24

これからブログなどのサイトを作りたいと思っている人は、お名前.comでのドメイン取得がオススメです。

■□━━ 急げ、ドメインは早い者勝ち! ━━□■
     ■お名前.com

アマゾンの2019年本屋大賞一覧

そして、バトンは渡された
ひと
ベルリンは晴れているか
熱帯
ある男

楽天市場のおすすめ商品一覧

お金2.0 新しい経済のルールと生き方 [ 佐藤航陽 ]
全部レンチン!やせるおかず 作りおき 時短、手間なし、失敗なし
「読む力」と「地頭力」がいっきに身につく 東大読書 [ 西岡 壱誠 ]