パスワードなしのrsync、その他すべてのアクセスにはキーとパスワードが必要です。

パスワードなしのrsync、その他すべてのアクセスにはキーとパスワードが必要です。

パスワードを含むキーを使用して、SSHアクセスに公開鍵認証が必要なサーバーを設定しました。 SSHを介してrsyncを実行するときにのみ許可されるパスワードなしのキーを設定しますが、他のすべてのSSHアクセスにはまだキーとパスワードを要求する方法はありますか?

ベストアンサー1

rsync専用に別々のRSAキーを生成します。このキーにパスワードを設定しないでください。id_rsa_rsync秘密鍵、id_rsa_rsync.pub公開鍵などの一意の名前を指定します。

サーバーで、~/.ssh/authorized_keys次のように新しい行に公開鍵をインストールします。

(server)$ cat << EOF >> .ssh/authorized_keys
command="rsync",no-pty,no-port-forwarding (paste your public key here)
EOF

生成されたファイルを確認して、次のことを確認してください。

(server)$ tail -1 .ssh/authorized_keys
command="rsync",no-pty,no-port-forwarding ssh-rsa AAAAB3..blah..blah..HhcvQ== [email protected]

rsyncローカルコンピュータからサーバーに移動するには、設定したばかりの新しいキーを使用するように-e 'ssh -i ~/.ssh/id_rsa_rsync'追加する必要があります。rsync

rsync -av -e 'ssh -i ~/.ssh/id_rsa_rsync' local/files* server:/remote/path/

ファイルにいくつかの巧妙なエントリを使用すると、コマンドラインを~/.ssh/config簡素化できます。rsync

# this entry is used for normal logins to "server":
Host server
  IdentityFile ~/.ssh/id_rsa

# this entry is used for rsyncing to "server" without a passphrase:
Host server-rsync
  Hostname server
  IdentityFile ~/.ssh/id_rsa_rsync

このHostname server行には有効なDNS名または/etc/hostsエントリを指定する必要があります。この構成エントリを使用すると、rsyncコマンドラインは次のようになります。

rsync -av local/files* server-rsync:/remote/path/

おすすめ記事