ログイン時に ssh-agent を起動する [closed] 質問する

ログイン時に ssh-agent を起動する [closed] 質問する

SSH エイリアスを使用して Bitbucket.com からプルするリモート Git リポジトリとしてサイトがあります。サーバー上で ssh-agent を手動で起動できますが、SSH 経由でログインするたびにこれを実行する必要があります。

ssh-agent を手動で起動します。

eval ssh-agent $SHELL

次にエージェントを追加します。

ssh-add ~/.ssh/bitbucket_id

次に、次の操作を行うと表示されます。

ssh-add -l

これで準備完了です。ログインするたびにこの処理を実行しなくても済むように、このプロセスを自動化する方法はありますか? サーバーは RedHat 6.2 (Santiago) を実行しています。

ベストアンサー1

この記事を読んでみてください。とても役に立つと思います:

https://web.archive.org/web/20210506080335/https://mah.everybody.org/docs/ssh

上記のリンクがいつか消えてしまった場合に備えて、解決策の主要部分を以下に記しておきます。

ダニエル・スターリン経由のジョセフ・M・リーグルからのこの解決策:

これをあなたの.bash_profile

SSH_ENV="$HOME/.ssh/agent-environment"

function 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

if [ -f "${SSH_ENV}" ]; then
    . "${SSH_ENV}" > /dev/null
    #ps ${SSH_AGENT_PID} doesn't work under cywgin
    ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi

このバージョンは、ssh-agent がすでに起動しているかどうかを確認し、見つからない場合は起動して設定を保存し、次回シェルを起動したときに使用できるようにするので、特に便利です。

おすすめ記事