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