2

開発者のマシンで仮想マシンを実行しています。「デプロイ」するには、antビルドスクリプトを介してSSH経由で仮想マシンにファイルをrsyncする必要があります。本番環境ではセキュリティが問題になりますが、ローカルマシンの開発用VMと通信する場合、SSHの安全性についてはあまり気にしません。

証明書を作成してSSHキーにインストールすることもできましたが、それは少し面倒です。むしろ、antスクリプトを介してパスワードをrsyncに送信し、それを1日と呼びたいと思います。

(編集-例なしでこの質問を処理できない場合は、このサーバーが私の制御の及ばないものであり、彼らの邪悪なシステム管理者が何らかの理由でSSHキーでのサインインを許可しないと仮定しましょう。誰が知っていますか?彼はただ狂っています。男!)

ssh設定を編集せずに、SSH、より具体的には非対話型モードでrsyncを呼び出す方法はありますか?つまり、パスワードを入力するだけですか?

4

2 に答える 2

4

たまたまこれに対する解決策をすでに見つけていましたが、それほど簡単ではなかったので、共有したいと思いました。

基本的に、「expect」というコマンド ライン プログラムを使用して、パスワードを rsync のインタラクティブ モードに入力しました。また、スクリプトとして記述する必要がなかったので、1 つのコマンドに要約しました。これは、何らかの理由で必要な場合は、rsync だけでなく ssh でも機能します。

もっと良い方法があるかもしれませんが、これはうまくいくようです。

192.168.64.131 は明らかに私のローカル VM の IP です。login_name と login_password を ssh ログインとパスに置き換えます。

expect -c 'spawn rsync -avz -e ssh ./ login_name@192.168.64.131:/var/www/auth/; expect "*?assword:*" {send "login_password\r"; interact};'
于 2012-10-26T22:18:16.587 に答える
-2

SSH キーを使用する方がはるかに簡単で安全です。次の回答に例を示します。

于 2012-10-26T23:51:24.883 に答える