rsyncを使用してIDファイル(id_rsa)を指定する

rsyncを使用してIDファイル(id_rsa)を指定する

研究機関がホストする仮想マシンであるリモートサーバーにディレクトリを定期的にバックアップする必要があります。 SSHキーを介してVMにアクセスする必要があります。ただし、rsyncがそのサーバーのSSHキーを指す方法がわからないことを除いては問題ありません。

キーファイルの場合はRsyncに問題はありませんが、~/.ssh/id_rsa他のファイルであればわかりますPermission denied (publickey)

sshを使用すると、指定されたIDファイルを使用できますが、-irsyncにはそのようなオプションがないようです。

また、ローカルコンピュータで一時的にキーを移動しようとしましたが、~/.ssh/id_rsaそれも機能しませんでした。

長すぎます。

rsyncを使用してIDファイルを指定できますか?

答え1

"-e"オプションを使用して正確なsshコマンドを指定できます。

rsync -Pav -e "ssh -i $HOME/.ssh/somekey" username@hostname:/from/dir/ /to/dir/

多くの SSH ユーザーは ~/.ssh/config ファイルに慣れていません。構成ファイルでは、各ホストのデフォルト設定を指定できます。

Host hostname
    User username
    IdentityFile ~/.ssh/somekey

長期的には ~/.ssh/config ファイルを調べることをお勧めします。

答え2

これはSSHユーザー設定で行うことができます。以下を参照してください。 http://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/ デフォルトでは~/.ssh/configを編集してください。

$ nano ~/.ssh/config
#Add Hosts below 
Host server1
HostName examplehost.com
User username
Port 22
IdentityFile /path/to/key

$ rsync -e ssh /home/user/directory [email protected]:home/user/directory/

これは、SSH、rsyncを使用するすべてのプログラムで機能します。

答え3

私には、次のようにssh-agentを起動するだけで十分でした。

eval `ssh-agent -s`
ssh-add /path/to/mykey

ここでより長い答えも参照してください。https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-agent

答え4

参考までに:

1)公開鍵は、常にリモートサーバーにログインしているユーザーのホームディレクトリにあります。つまり、「backup」としてログインした場合、公開鍵は /home/backup/.ssh/authorized_keys にあります。ログイン時に、ユーザーIDはターゲットで使用される公開鍵を定義します。

2 つの方法で接続する場合、ユーザー ID を選択できます。

ssh [email protected]
or
ssh -l user_id  destination_server     (<-- that is lower case "L")

一方、秘密鍵は、Danの回答で述べたように上書きしない限り、ユーザーのホームディレクトリに同様の方法で存在します。

2)バックアップ目的で「rsync」などの単一のコマンド実行に制限される制限付きキーを生成できます。権限のないユーザーアカウントと「sudo」を使用してサーバー全体をリモートでバックアップできる「rsnapshot」バックアップの良い説明があります。

「rsnapshot」タスクガイド

Rsnapshotは複数のリモートまたはローカルサーバーを簡単にバックアップできるため、便利な予約および集中型バックアップサーバーになります。

関連情報