rsyncを使って差分のあるファイルを・・・の続き

ローカルからリモートのサーバー間でrsyncを実行するのにsshを使わないと
なぁ~って事で。
「sshでログインせずに鍵認証のみで実行する。」
をやってみた。

local:~% ssh-keygen -t rsa


Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):


< 「Enter」を押す>
Enter passphrase (empty for no passphrase):


<「Enter」を押す>
Enter same passphrase again:


<「Enter」を押す>
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
04:cf:a6:c9:2e:01:41:6c:86:34:03:96:c9:7b:7a:cd hoge@hoge.com


そうすると

id_rsa」と

id_rsa.pub」ってのが出来るので、そいつをリモートの方にコピーしてから
下記を実行した。


remote:~% cat id_rsa.pub >> ~/.ssh/authorized_keys


そうするとリモート側に公開鍵が出来上がるので、パスワードが必要なくなる。

下記は最初の認証時のみで、一度設定すると次回からは聞かれない。
local:~% ssh remote
The authenticity of host 'remote (192.168.1.1)' can't be established.
DSA key fingerprint is 2e:f1:b2:ff:33:d2:c0:00:11:33:44:55:b7:8e:e4:46.
Are you sure you want to continue connecting (yes/no)?

<yesを入力>

パスワードを入力しちゃうと、パスワードを聞かれてしまう所でちょっとつまづいた。
重要だったのは「パスワードを入力せずに鍵のみでの認証にする。」って事でした。
つまり「空」<ENTER>だよ!!!
気付けよ俺!!!

ちなみにPHPで「exec関数」を使って「rsync」を使ってみよぉ~と思ったら、1日位はまってはまってくじけそうになった。
原因は・・・

ズバリ「環境変数」ですね。

exec('rsync -nva -e ssh [ローカルファイル名] [リモートユーザー名]:[リモートホスト名][リモートファイル名]')


って実行したらゼンゼン動いてくれなくて、すげ~困った。

こいつを

exec('/usr/local/bin/rsync -nva -e /usr/local/bin/ssh [ローカルファイル名] [リモートユーザー名]:[リモートホスト名][リモートファイル名]')


ってやったら動いたよぉ~♪
まじで疲れた。
駄目だね、はまる時はすげぇ~簡単な事でも気付かず延々と時間だけが過ぎていく・・・。
Posted at: 
2007/01/26 17:40:31
0 Comments
0 TrackBacks
Tags: 
Other
Trackback: 
http://kishi-r.com/2007/01/26/rsync_1/trackback/

TrackBacks

まだ登録されていません。

Comments

まだ登録されていません。

Add Comment

Add Comment
人気ブログランキング - kishi-r.com track feed
あわせて読みたい