読者です 読者をやめる 読者になる 読者になる

鍵を使ってのssh通信とか

プログラム
  • やりたいこと
  1. ローカルからcronを使ってリモートにscpでファイルを特定のサバに送る
  2. ローカル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

さ、楽しくやろう