鍵を使ってのssh通信とか
- やりたいこと
- ローカルからcronを使ってリモートにscpでファイルを特定のサバに送る
- ローカルcronを使って定期的にリモートでなんか処理させる
- 解決方法
(1)ローカルで鍵を作る
ssh-keygen -t [rsa/dsa/rsa1] -N "<passphrase>" -f .ssh/<filename>
- tは鍵のタイプ
- Nはパスフレーズ(パスワードと一緒にスンナよな!)
- fは鍵の名前
(2)鍵をリモートに送って登録する
scpでもフロッピーでもハードコピー(復活の呪文)でもなんでもいいからとにかく、ローカルの公開鍵(pubってついてるやつ)をリモートに持っていく。
その後、.ssh/authorized_keys(2?)に登録する
cat <鍵名>.pub >> .ssh/authorized_keys(2?)
(1)でdsaを使った場合はauthorized_keys2にしれ(できなかったら適当に試せ)
(3)cronに登録する
例えば、
#!/bin/bash echo "touch test.log" | ssh -oIdentityFile=.ssh/<filename> <remote host>
とすればリモート側でtest.logってファイルができる
例えば、
#!/bin/bash f=test.log;touch $f;scp -oIdentityFile=.ssh/<filename> $f <remote host>:
とすればローカルで作成したファイルをリモートに安全な経路でパス無しで送れます。
注意点は
(1)リモート、ローカルのどちらも.sshディレクトリは0700
(2)リモート、ローカルのどちらも鍵ファイルは600
さ、楽しくやろう