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


12

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/

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


3
答えを言わないように人々に言うと、答えは得られません。
マイクスコット

7
これは無意味です。キー認証の問題は何ですか?鍵ベースの認証が構成されている場合、その時点から、希望どおりに自動的にジョブを実行する単純なコマンドのみがあります。だから私はこれに問題があるのか​​わかりません。「自動的に」指定するためにパスワードをどこかに保存することは、私が想像できる最大のセキュリティホールの1つです。それを行うポイントは何ですか?
LGB

セキュリティに関する講義をする必要はありません。私はすでにその意味を知っています。サーバー上のすべてをそのままにして、何も変更しないでください。あなたの情報については、私はすでにキーでそれを試しましたが、それでもパスワードを求められますので、あなたの議論は無効です!
ソリンミハイオプレア

1
いいえ、正当な理由により、デフォルトではそのようなパラメーターはありません。このようなパラメーターが必要な場合は、Migsの回答をご覧ください。
-umbric

2
@Sorin Mihai Oprea:それがうまくいかないなら、それは悪いですか?面白い。参考までに、ISPで働いているインターネットシステムエンジニアとして、100以上のサーバーでsshを使用したキーベースの認証を使用しています。それは私たちにとっては興味深いことです。それがどのように機能し、どのように設定する必要があるのか​​理解していないからといって、悪いことを言わないでください。あなたが正しい場合、主要なsshサーバー実装のバグとして注意を引く人にはうまくいきません:)私のアグリメントは無効ではありません、あなたは何らかの理由でうまく設定できません。同じではありません、ごめんなさい。
LGB

回答:


29

多分sshpassを試して ください

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

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

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


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

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

どういたしまして。私はここで公開鍵認証がこの問題の最良の解決策であるという他の人々に同意しますが、代替手段を使用する際のトレードオフを認識している限り、代替手段が必要になる場合があります。
ミグ

確かに...しかし、それがオープンソースと呼ばれる理由ですよね?複数のフレーバー...同じ結果!
ソリンミハイ

1
パスワードが悪いと言わないだけでなく、OLDDDDレガシー機器を使用している一部のユーザーは、新しい機器が届くまでこれらを必要とするだけです。)
Theodore Howell

6

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

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

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


この回答は、受け入れられた回答よりも優れています。
vietnguyen09

1

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

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


提案をありがとうございますが、実際にはsshpassの方がはるかに簡単であることがわかりました!
ソリンミハイオプレア

1

私は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

Where -Pは、どのプロンプトを検索するかを指定します。実行sshpass -vして、password存在しないフレーズを検索することでそれを見つけました。


0

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

その試験後のマシンは、パスワードなしで、その後のrsyncでのコースの次のローカルマシンからへの途中でsshでリモートになることができますtarget/serverマシン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.