シェルスクリプト - リモートサーバーにscpしてファイルをダウンロードし、パスワードを保護する方法

シェルスクリプト - リモートサーバーにscpしてファイルをダウンロードし、パスワードを保護する方法

Apacheログをダウンロードする必要があるリモートサーバーがあります。

手動でサーバーに行ってファイルをインポートできますが、scpcrontabに入れたいです。自動化する唯一の方法は、ターゲットサーバーのパスワードを含めることですが、私はそうしたくありません。

scp別のサーバーに行き、ファイルをインポートして別のコンピュータにダウンロードすることをどのように提案しますか?

ベストアンサー1

サーバー側では、必要な数の公開鍵を承認できます。また、サーバー側の特定のコマンドにキーを制限することもできます。したがって、クライアント側で SSH 鍵ペアを生成し、秘密鍵にパスワードを入力しないでください。認証されたキーのリストに公開キーを追加し、コマンドの制限を追加します。

ssh-keygen -t rsa -f ~/.ssh/apache-logs-download.id_rsa -N ''
ssh-copy-id -i ~/.ssh/apache-logs-download.id_rsa server.example.com:

サーバーで新しく追加された行を編集します。~/.ssh/authorized_keysssh-copy-id最後に追加されました)forceコマンドディレクティブを追加します。

command="/usr/bin/rrsync -ro /var/log/apache",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA…

rrsyncSSHを介して特定のディレクトリにのみrsyncを許可するように特別に設計されたrsync用のラッパースクリプト。rrsync.以外のディレクトリにある場合は、上記のパスを変更してください/usr/bin

おすすめ記事