LoginSignup
58
70

More than 5 years have passed since last update.

sshpassでssh/scpの対話型のパスワード入力を自動化する

Posted at

Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- - Qiita

対話型のシェルを自動化する際は基本的には上の記事のように expect で頑張らないといけないが、
sshscp に関しては sshpass を利用すれば簡単に自動化が可能。
(セキュリティに関する是非とか公開鍵使用したほうが良いとかは今回は省略する)

sshpass(1) - Linux man page

イントール

ubuntuならaptでインストールできる。(MacのHomeBrewの場合は警告が出るらしい)

sudo apt-get -y install sshpass

使用例

# パスワードを指定
sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@host 'command'
sshpass -p 'password' scp -o StrictHostKeyChecking=no localfile user@host:/path/to/copy

# パスワードの記載されているファイルを指定
sshpass -f passwordFile ssh -o StrictHostKeyChecking=no user@host 'command'
sshpass -f passwordFile scp -o StrictHostKeyChecking=no localfile user@host:/path/to/copy

-o StrictHostKeyChecking=no を指定しないと初回接続時に接続先ホストの確認メッセージがでるため失敗する場合がある

参考

Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- - Qiita
sshにパスワードで自動ログインするならexpectよりもsshpassを使おう | PCと遊ぶ日々の記録
sshpass をインストールするには - らくがきちょう
sshコマンドでパスワードをオプションとして入力出来るようにする『sshpass』 | 俺的備忘録 〜なんかいろいろ〜

58
70
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
58
70