129

rsyncでIDファイルをどのように使用しますか?

これは、IDファイルを使用して接続するためにrsyncで使用する必要があると思う構文です。

rsync -avz -e'ssh -p1234 -i〜/ .ssh / 1234-identity' \
"/ local / dir /" remoteUser@22.33.44.55: "/ remote / dir /"

しかし、それは私にエラーを与えています:

警告:IDファイル〜/ .ssh / 1234-IDにアクセスできません:そのようなファイルまたはディレクトリはありません。

ファイルは問題なく、パーミッションは正しく設定されています。少なくとも私の構文では、sshを実行するときに機能します(rsyncでは機能しません)。私は何が間違っているのですか?リモートマシンでIDファイルを検索しようとしていますか?その場合、ローカルマシンでIDファイルを使用するように指定するにはどうすればよいですか?

4

6 に答える 6

88

ssh-agentキーを使用しssh-addてメモリにロード することをお勧めします。sshssh-agentからのIDが見つかると、自動的に試行されます。コマンドは

eval $(ssh-agent) # Create agent and environment variables
ssh-add ~/.ssh/1234-identity

ssh-agent暗号化されていないsshキーをメモリに保持するユーザーデーモンです。sshは、実行時にssh-agentが出力する環境変数に基づいて検出します。この出力を評価するために使用evalすると、環境変数が作成されます。 ssh-addキーメモリを管理するコマンドです。エージェントはssh-addを使用してロックできます。キーのデフォルトの有効期間は、ssh-agentの開始時に指定することも、キーの追加時に指定することもできます。

ポートとキーの定義を提供するために〜/ .ssh/configファイルを設定することもできます。(その他のオプションについては、 `man ssh_configを参照してください。)

host 22.33.44.55
    IdentityFile ~/.ssh/1234-identity
    Port 1234

sshコマンドを一重引用符で囲むと、~またはに必要なシェル拡張が防止され$HOMEます。キーへのフルパスまたは相対パスを一重引用符で囲むことができます。

于 2011-04-03T02:19:11.820 に答える
86

どちらかを使用してください$HOME

rsync -avz -e "ssh -p1234  -i \"$HOME/.ssh/1234-identity\"" dir remoteUser@server:

またはキーへのフルパス:

rsync -avz -e "ssh -p1234  -i /home/username/.ssh/1234-identity" dir user@server:

Ubuntuでrsync3.0.9でテスト済み

于 2013-11-30T08:54:17.477 に答える
36

IDキーファイルへの絶対パスを指定する必要があります。これはおそらくrsyncのある種の癖です。(結局のところ完璧ではありません)

私はほんの数日前にこの問題に遭遇しました:-)

于 2011-04-05T04:02:55.430 に答える
25

これは私のために働く

rsync -avz --rsh="ssh -p1234  -i ~/.ssh/1234-identity"  \
"/local/dir/" remoteUser@22.33.44.55:"/remote/dir/"
于 2012-11-21T22:45:17.010 に答える
10

rsyncでキーファイルを使用します:

rsync -rave "ssh -i /home/test/pkey_new.pem" /var/www/test/ ubuntu@231.210.24.48:/var/www/test
于 2016-05-11T06:42:14.470 に答える
6

コマンドをbashまたはshで実行していますか?これは違いを生むかもしれません。に置き換え~てみてください$HOME-eオプションの文字列を二重引用符で囲んでみてください。

于 2011-04-03T01:59:26.450 に答える