web-dev-qa-db-ja.com

秘密鍵とrsyncする方法は?

MacOSマシンからWindowsAzureで実行されているUbuntuサーバーにrsyncしようとしています。それにsshするには、次のことを行う必要があります。

 $ ssh -i  myPrivateKey.key -p 22 [email protected]

キーファイルはX509公開鍵である可能性があると思います(申し訳ありませんが、私はシステム管理者ではありません)。とにかく、上記のコマンドで正常にsshできます。

次に、ファイルをリモートサーバーにrsyncしたいと思います。どういうわけかオプションとして.keyファイルを提供する必要がありますか?

通常のrsyncコマンドは失敗します:

$ Sudo rsync -avz -e my/file [email protected]:/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]
7
Richard

コマンドが失敗するのは、キーが間違っているためではなく、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キーペアです。

10
user1686