web-dev-qa-db-ja.com

キー認証なしのSSHを介したパスワードレスRsync [安全でない]

SSH経由で接続するRSyncジョブをセットアップしたい。

コンピューター(backup @ myhost)とリモートホスト(test @ remhost)があり、フォルダー〜/ somethingのすべての内容をバックアップする必要があります。 sshユーザーテストには、〜/フォルダー内のすべてのファイルとフォルダーに対する読み取りアクセス権のみがあります。 rsyncを使用してtest @ remhost:〜/ somethingフォルダーをbackup @ myhost:〜/ bakフォルダーにコピーしたい。

この目的のために、Ubuntu 11.10(Oneiric)でBASH経由で次のコマンドを使用します。

rsync -avz -e ssh test@remhost:~/something/ ~/bak/

Enterキーを押した後、これを取得します。

test@remhost's password:

パスワードを入力すると、rsyncが機能します。

上記のコマンドを作成して、パスワードを自動的に入力してパラメーターとして渡すか、自動的に入力してジョブを開始します。

rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/を実行しようとしましたが、それでもパスワードを要求され、迷惑です。

どんな種類のキー(RSA、DSAまたはその他)についても聞きたくありません。ログインして仕事をする簡単なコマンドが欲しいだけです。

編集:公開鍵認証が無効になっていて、これを変更できない場合、考えられるシナリオがあります。例えば。 OpenSSHを使用する場合、ファイルsshd_configを編集してPubkeyAuthentication yesを追加するには、サーバーのルート権限が必要です。

編集:これは最終的に私のために働いたものです:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

この方法はパスワードをプレーンテキストで送信し、中間者攻撃に対して脆弱であるため、安全とは見なされないことに注意してください。セキュリティを強化するために、キー認証を使用することをお勧めします。

11

多分 sshpass を試してください。

使用するのに十分簡単なようです... aptからも利用できます。

私は鍵をコピーする前にこのようなものを探していましたが、とにかくすでに必要なところに鍵を持っているので、これを試してみる時間はありませんでした。

ただし、パスワードの表示に関しては、そのチュートリアルの免責事項に注意してください。


これを行う必要があるすべての人のために:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
27
Migs

セキュリティの脅威に対してより安全なソリューションのバリエーションは、パスワードを厳重な権限でファイルに保存し、shpass-fフラグを使用することです。

sshpass -f '/home/me/.password' rsync --progress -avz -e ssh
test@remhost:~/something/ ~/bak/

違いは、実行中のプロセスを一覧表示してもコマンドラインにパスワードが表示されず、パスワードが含まれるファイルへのパスのみが表示されることです。

6
Andrew Allaire

Sshpassは動作することがわかりましたが、用語にはSSHPASS read: Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':と書かれているため、次のように実行する必要があります。

sshpass -P passphrase -p 'password' rsync /path/to hostname:/destination/path -av --progress -e ssh

ここで、-Pは、sshpass -vを実行して、そこにないpasswordというフレーズを探して、どのプロンプトを探すかを指定します。

1
GuySoft

パスフレーズなしの公開鍵認証が、自動化されたssh/rsyncログインに適したソリューションではない状況は想像できません。

とにかくexpectはあなたがやりたいことを達成する方法でなければなりません。パスワードをsshにパイプすることはできませんが、これは非常によく似ています。そうする方法は、答えられます ここstackoverflowで

1
lumbric

最初は、passowrd/bypassパスワードログインなしでsshを実行します。ターゲットマシンにssh-copy-id -i ./ssh/id_rsa.pubを使用できることがわかります。

そのテストの後、パスワードなしでsshでマシンをリモートで実行し、次にもちろんローカルマシンからtarget/serverマシンへのrsyncを実行できます

0
budi satriyo