rsyncを定期的に実行し、rsyncを実行するたびにSSHキーパスワードを要求するスクリプトを自動化したいと思います。
スクリプトの先頭にパスワードを一度入力しても大丈夫です。ループで rsync コマンドを実行するたびにメッセージは表示されません。
パスワードを一度入力して引き続き使用できる、きれいで安全な方法はありますか?
私の仮想的な解決策は、何らかの方法でパスワードを入力するように求められ(どうすればよいかわからない)、それを環境変数に保存して使用することです。しかし、私が知らないより簡単な方法があると思います。
ベストアンサー1
認証プロキシを設定します。今すぐssh-agent
。バックグラウンドで実行され、認証が必要な要求を傍受します。エージェントを起動すると、一度パスワードを入力するように求められます。パスワードをメモリに保存し、認証が必要なときはいつでもパスワードを自動的に挿入します(たとえば、キーがインストールされているリモートホストにSSHを使用してログインします)。
ここで起こって走る方法は1つあります。スクリプトを作成し、次のような便利な場所(たとえば、/ / bin)に配置します。
start_agent ()
{
echo "Initialising new SSH agent...";
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV};
echo succeeded;
chmod 600 "${SSH_ENV}";
. "${SSH_ENV}" > /dev/null;
/usr/bin/ssh-add
}
# Source SSH settings, if applicable
SSH_ENV=$HOME/.ssh/environment
if [ -f ${SSH_ENV} ]; then
. "${SSH_ENV}" > /dev/null
# ps flags are not always portable so check here if agent doesn't start
ps -p "${SSH_AGENT_PID}" || start_agent;
else
start_agent;
fi
次に、次のスクリプトを取得します. ~/bin/ssh-agent-init.sh
。この時点でパスワードの入力を求められますので、パスワードを入力してください。
.bashrc
常に実行できるようにするには、直接ダウンロードできます。