質問: 秘密鍵とrsyncする方法は? macosマシンからwindowsazureで実行されているubuntuサーバーにrsyncしようとしています。それにsshするには、次のことを行う必要があります。 $ ssh -i myprivatekey.key -p 22 me@me.cloudapp.net キーファイルはx509公開鍵である可能性があると思います(申し訳ありませんが、私はシステム管理者ではありません)。とにかく、上記のコマンドで正常にsshできます。次に、ファイルをリモートサーバーにrsyncしたいと思います。どういうわけかオプションとして.keyファイルを提供する必要がありますか?通常のrsyncコマンドは失敗します:$ sudo rsync -avz -e my/file me@me.cloudapp.net:/my/path rsync: failed to exec my/file: permission denied (13) rsync error: error in ipc code (code 14) at /sourcecache/rsync/rsync-42/rsync/pipe.c(86) [receiver=2.6.9] rsync: connection unexpectedly closed (0 bytes received so far) [receiver] rsync error: error in rsync protocol data stream (code 12) at /sourcecache/rsync/rsync-42/rsync/io.c(452) [receiver=2.6.9]
回答: コマンドが失敗するのは、キーが間違っているためではなく、rsyncにsshではなくmy/fileを実行するように指示しているため(-eオプションを使用してそれに続くwordをピックアップします)。最初に-eオプションを削除します。rsyncは通常sshを使用して接続するため、cloudappへの接続に常に特定のキーを使用するようにbothを構成できます。たとえば、これを~/.ssh/configファイルの先頭に配置します。host me.cloudapp.net username me identityfile ~/my-cloudapp-key.key identitiesonly yes username meの部分では、sshまたはrsyncを使用するときにme@の追加をスキップすることもできます。プレーンrsync -avz my/file me.cloudapp.net:/my/pathが機能します。注:sshキーはx.509証明書ではありません。これらは、追加情報のない単なるrsaまたはecdsaキーペアです。