SSHキーパスワードを定期的に要求するスクリプトを自動化する方法

SSHキーパスワードを定期的に要求するスクリプトを自動化する方法

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常に実行できるようにするには、直接ダウンロードできます。

おすすめ記事