ログイン/再起動時にパスワードのない自動SSH

ログイン/再起動時にパスワードのない自動SSH

再起動またはログアウトした後、ログインしてもパスワードのないSSHが続行されるようにしたいです。何とかssh-agentを実行してログインするときは、ssh-addコマンドを使用する必要があります。チュートリアルで次の行を追加する必要があることを読みました.bashrc

ssh_agent="$HOME/.ssh-agent.sh"
if [ -f $ssh_agent ]
then
  source $ssh_agent > /dev/null
fi

同時にチュートリアルでも言及されています。

ssh-agentがすべてのプロセス(クローンジョブを含む)を実行している場合は、パスワードは必要ありません。ただし、ssh-agent が死亡または終了すると、以前の設定が維持されるため、問題が発生する可能性があります。

再起動/再ログイン後もパスワードなしでsshを使用できる安全な方法が必要です。どんな提案がありますか?

ベストアンサー1

最も簡単な方法:インストールpam_ssh。ログインすると、自動的にssh-agentが起動し、キーがロードされます。

難しい方法:これをログインスクリプト(~/.bash_profileまたは~/.profile)に入れてください:

check-ssh-agent() {
    # `ssh-add` returns 2 if the agent is running but empty; ignore.
    ssh-add -l &>/dev/null || (( $? == 2 ))
}

if ! check-ssh-agent; then
    envfile=~/.ssh/agent-$HOSTNAME
    if [ -f "$envfile" ]; then
        . "$envfile" >/dev/null
    fi
    if ! check-ssh-agent; then
        ssh-agent >"$envfile"
        . "$envfile" >/dev/null
        if [ -t 0 ]; then
            # This `if` can be removed if all your keys are passphrase-less.
            ssh-add
        fi
    fi
    unset envfile
fi

「残りの設定」は$SSH_AUTH_SOCK簡単に変更できる環境変数です。 (しかも、これはすべてできるgo error は ssh のエラーメッセージです。 )

おすすめ記事