パスワードを含むキーを使用して、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/