プロが教える店舗&オフィスのセキュリティ対策術

SSH + rsync(rsync -e ssh ・・・で ssh 回線で同期)でファイルをコピーする時に、パスワードを聞かれなくする方法はないでしょうか?

http://www.okweb.ne.jp/kotaeru.php3?q=323149 などを参考に、公開鍵を作りログイン先のauthorized_keysに登録しました。(公開鍵を作るときにパスフレーズを入力してません。)

こうすると、たしかに"パスフレーズ"は聞かれないのですが、"ログインパスワード"は毎回聞かれます。これは仕方がないのでしょうか?

●ファイルのコピー先がファイアーウォールで
ssh のポートくらいしか空いていないので、
ssh + rsync を使おうと思っています。

●同期したいフォルダは複数あるので、スクリプトを作って

rsync -avz -e ssh フォルダAを同期 ・・・
rsync -avz -e ssh フォルダBを同期 ・・・
・・・

という感じで一気に同期できれば便利だな
と思っていました。

ところが今のままでは、rsync コマンド一回ごとに
ログインパスワードを入力することになってしまいます。

A 回答 (5件)

sshd_configでパスワードを有効にしてるとか?



# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes

うちはパスワードなしでrsyncできてます。

この回答への補足

 Permission denied (publickey,keyboard-interactive).

の件で、Googleを検索したら、

 /etc/ssh/sshd_config を次のように編集すればよい。
 Protocol 2,1
   ↓
 Protocol 1,2 」
 http://www.zdnet.co.jp/help/tips/linux/l0542.html


とあったので、やってみました。
しかし、やはり、Permission denied (publickey,keyboard-interactive) が出ます。

ちなみに、sshdをリスタートすると、次のようなメッセージが出るのですが、なにか手がかりはないでしょうか。
----------
$ /etc/rc.d/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd:Could not load host key: /etc/ssh_host_key
Could not load host key: /etc/ssh_host_rsa_key
Could not load host key: /etc/ssh_host_dsa_key
Disabling protocol version 1. Could not load host key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.
[FAILED]

補足日時:2003/06/29 22:12
    • good
    • 0
この回答へのお礼

ありがとうございます。(いつもお世話になります (^^)。助かります。)
パスワードなしで rsync できている、と聞いて、希望がわいてきました。

 PasswordAuthentication yes

にして、sshd を再起動してみました。

とりあえず、プライベートネットワークで、sshd が走っているマシン(192.168.0.5)自身に ssh ログインしようとしたのですが、

 $ ssh 192.168.0.5
 Permission denied (publickey,keyboard-interactive).

とでてしまいます。

known_hosts にも authorized_keys にも、192.168.0.5 の 公開鍵

 192.168.0.5 ssh-rsa AAAAB3Nza~~~

を書いてあるのですが。。。
もし、なにかありましたらぜひアドバイスをお願いします。

お礼日時:2003/06/29 22:01

(もう一つ追加)



linuxのsshdには、libwrapperライブラリが組み込まれています。

# ldd /usr/sbin/sshd
  libwrap.so.0 => /lib/libwrap.so.0 (0x4001d000)

この場合は、/etc/hosts.allowでsshdクライアントからの接続許可
を指定する必要があります。

(/etc/hosts.allow)
ALL  : 127.0.0.1
sshd : 192.168.0.0/255.255.255.0

(/etc/hosts.deny)
ALL  : ALL
    • good
    • 0

(追加)



>PasswordAuthentication yes
>にして、sshd を再起動してみました。

パスワードを無効にするのだから、「no」です。
    • good
    • 0
この回答へのお礼

すみません。書き間違えていました。「yes」にしています。

お礼日時:2003/06/29 23:42

>ちなみに、sshdをリスタートすると、次のようなメッセージが出るのですが、


>なにか手がかりはないでしょうか。

なんかへんですね。ホストのキーを作ってください。
(Linuxならインストール時に作ってくれるけど。)

ssh-keygen -q -t rsa1 -f /etc/ssh_host_key -C '' -N ''
chmod 600 /etc/ssh_host_key
chmod 644 /etc/ssh_host_key.pub

ssh-keygen -q -t rsa -f /etc/ssh_host_rsa_key -C '' -N ''
chmod 600 /etc/ssh_host_rsa_key
chmod 644 /etc/ssh_host_rsa_key.pub

ssh-keygen -q -t dsa -f /etc/ssh_host_dsa_key -C '' -N ''
chmod 600 /etc/ssh_host_dsa_key
chmod 644 /etc/ssh_host_dsa_key.pub


>Permission denied (publickey,keyboard-interactive).
あと、ホーム配下の.ssh/ の権限は700です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
確認しましたが、上記のファイルはすべてさくせいされていました。.sshも権限700になっているようです。

どうも、Cygwin で sshd を再起動するときはWindowsの管理ツールを使うのですが、あのときたまたま
$ /etc/rc.d/init.d/sshd restart
こうしてみたのが間違いだったようです。
すみません。

お礼日時:2003/06/29 23:53

そもそも ssh 単体で使用したときにパスワードを聞かれていませんか? だとするとサーバへの公開鍵の登録がうまくできていない可能性が高いですよ。



私は FreeBSD がメイン OS なのですが、

 mkdir ~/.ssh
 chmod 700 .ssh
cp id_dsa.pub .ssh/authorized_keys

でいけてます。無論 Redhat Linux あたりでも手順は変わりません。あなたが実際に行った作業手順を示せば問題点が分かるかもしれません。

この回答への補足

おかげさまで、問題点がはっきりしたので、質問の焦点を絞って再投稿します。

補足日時:2003/06/29 23:55
    • good
    • 0
この回答へのお礼

ありがとうございます。

ここを参考に、
http://www.asahi-net.or.jp/~vp5m-snd/sec/tech/SS …
http://mitu.dyndns.org/~web/memo7.htm
# ssh-keygen -t rsa1
で、公開鍵を作り、リモートホストの.sshディレクトリにidentity.pubを移し、そのディレクトリで
# cat identity.pub >>authorized_keys
など行いました。

実は、Windows + Cygwin 上で、windows マシンどうしやっていたのですが、
hetarepyon さんに言われて気になったので、Linux にも同様のことをやってみました。

> そもそも ssh 単体で使用したときにパスワードを聞かれていませんか?

そのとおりです。でも確かに Win -> Linux では聞かれませんでした。
Cygwin の sshd は特別なのでしょうか。。。
いちおう、最新版の Cygwin なのですが。

お礼日時:2003/06/29 22:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!