諸事情によりssh、scp、rsync実行時にパスワード入力を自動化する必要があってsshpass
を使う場合に、別ファイルへ保存しておいたパスワードを使う方法。
可能なのであれば公開鍵認証を使うこと。
sshpass で別ファイルからパスワードを読み込むオプション(-f)
sshpassのオプション-f
を使うと、別ファイルからパスワードを読み込める。sshpass -f パスワードファイルパス
に続いてssh、scp、rsyncコマンドを実行して使用する。
sshの場合。
sshpass -f パスワードファイルパス ssh user@host
scpの場合。
sshpass -f パスワードファイルパス scp ファイルパス user@host:リモートパス
rsyncの場合は-e
オプションを使ってssh経由で実行する。
sshpass -f パスワードファイルパス rsync -e 'ssh -p ポート番号' -av ファイルパス user@host:リモートパス
sshpassのインストール
sshpassはパッケージマネージャでインストールできる。
yumの場合は以下の通り。
$ sudo yum install -y sshpass
パスワードをコマンドに直接書きたい場合(-p)
コマンドに直接書いてもいい場合は-p
オプションを使う。sshpass -p 'パスワード'
に続いてssh、scp、rsyncコマンドを実行して使用する。-p
オプションでパスワードを指定する場合、シェルで実行してしまうとコマンド履歴に残ってしまうので注意。
sshの場合。
sshpass -p 'パスワード' ssh user@host
scpの場合。
sshpass -p 'パスワード' scp ファイルパス user@host:リモートパス
rsyncの場合。
sshpass -p 'パスワード' rsync -e 'ssh -p ポート番号' -av ファイルパス user@host:リモートパス
\第一線のプログラマーの行動原理を学べる!/