スクリプト等でサーバからファイルを取得する際、パスワードを訊かれて処理を止めないようにする方法です。
scpコマンドと公開鍵認証方式を使います。

前提:
sshがインストール済みであること。
未インストール場合はこちらの記事を参考にサーバ・クライアント両方にインストールしておいてください。

公開鍵認証方式でファイルコピーするための準備:
 ssh-keygen -t rsa ←色々訊かれるが、パスワード無しにする場合は全てエンター
 ssh-copy-id -i ~/.ssh/id_rsa.pub コピー相手のアカウント名@コピー相手のIPアドレス ←公開鍵をクライアントへコピー(*1

*1 ssh-copy-idコマンドがインストールされていない場合は、手動で公開鍵を相手サーバに送ります。
  方法:相手サーバのアカウントの~/.ssh/authorized_keysに、
  ssh-keygenで作成した~/.ssh/id_rsa.pubの内容をコピー&ペースト

上記の操作を、コピーする相手同士でそれぞれ実施します。
つまり、公開鍵を教えあいます。(*2)

*2 単方向でしか通信しない場合(例えばこちらから通信するだけで、相手サーバからは通信してこない場合)、通信される側は、公開鍵を相手に送る必要はありません。

ファイルコピー操作:
scp コピー元アカウント名@コピー元IPアドレス:コピー元ファイル名 コピー先ファイル名 
例)
scp test1@192.168.xxx.xxx:~/scptest.txt .

例では、192.168.xxx.xxxのtest1アカウントから見たパスの~/scptest.txtを、scpコマンドを実行したサーバのカレントディレクトリに取得します。
パスワードを訊かれずにファイルが取得できれば成功です。
コピーする方向を逆にする場合は、cpコマンドのように、scpコマンドに渡す引数を逆にするだけです。
scp コピー元 コピー先
 
スポンサードリンク