rsyncコマンドが使えない

rsyncコマンドでデータを送信しようとすると…

$ rsync -av 送信するファイル名 -e "ssh -p ポート番号 -i ~/.ssh/秘密ファイル名" ユーザー名@ホスト名:送信先のパス
Warning: Identity file ~/.ssh/秘密ファイル名 not accessible: No such file or directory.
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.0]

とエラーメッセージがでます。秘密ファイルがよくないようで、接続できないようです。

No such file or directoryと言われるので、秘密ファイルがないのかと思い、確認しますがあります。

not accessibleとあるので、秘密ファイルにアクセスできないのかと思い、パーミッションに問題があるのかなと思いましたが、関係がないようです。

送信しようとしているサーバーへはssh接続できます。

$ ssh -p ポート番号 -i ~/.ssh/秘密ファイル名 ユーザー名@ホスト名

解決方法

調べると、rsyncコマンドと同様の機能をもつscpコマンドを用いるとうまくいくとのこと。

scpコマンドは以下のように実行します。

$ scp -P ポート番号 -i ~/.ssh/秘密ファイル名  送信するファイル ユーザー名@ホスト名:送信先のパス

こちらでは、うまくいきました。

これを機に前から気になっているscpコマンドとrsyncコマンドを調べてみたいと思います。

まとめ

rsyncコマンドでWarning: Identity file ~/.ssh/秘密ファイル名 not accessible: No such file or directory.というエラーがでた場合、scpコマンドで実行するとうまくいくかもしれません。