#パスワードなしでscp
まずは、
(1) ssh-keyを作る。
$ ssh-keygen -t rsa
すると、
Enter file in which to save the key (/home/<user>/.ssh/id_rsa):
と、「どこに鍵を保存しますか」と言われるので、特に問題がなければEnterを押してデフォルトのディレクトリ(~/.ssh/)に保存する。
次に、パスフレーズの設定を要求される
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
ここでは、パスフレーズなしにしたいので、何も入力せずに、Enterを2回押す。
$ ls ~/.ssh
id_rsa id_rsa.pub
これで鍵が~/.sshの中にできた。
(2) sshしたいサーバー側に公開鍵(public key)を覚えさせる。
$ ssh-copy-id -i ~/.ssh/id_rsa.pub <user name>@<ip address>:
ユーザーのパスワードが要求されるので入力すると、
サーバー側にログインして、~/.ssh/authorized_keysというファイルの中にpublic keyが保存されていることが確認できる。
おわり。
これで、これからsshやscpするときにパスワードなしで実行できる。
#追記
- 別の方法
sshpassコマンドの利用。以下をスクリプトにして,使うとパスワードを入力する手間が省けるが,スクリプト内にパスワードが露呈してしまう問題点がある。
sshpass -p "your password" scp ./abc.txt <hostname>:/abc.txt