1316

ラップトップで新しいSSHキーを作成するときにパスフレーズを設定しました。しかし、私が今気付いているように、SSHを介してリモートの場所( GitSVN)に1時間に何度もコミットしようとすると、これは非常に苦痛です。

私が考えることができる1つの方法は、SSHキーを削除して新しいものを作成することです。同じキーを保持したまま、パスフレーズを削除する方法はありますか?

4

7 に答える 7

2420

短い答え:

$ ssh-keygen -p

これにより、キーファイルの場所、古いパスフレーズ、および新しいパスフレーズ(パスフレーズがない場合は空白のままにすることができます)を入力するように求められます。


プロンプトなしですべてを1行で実行したい場合は、次のようにします。

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

重要:コマンドを実行するとき、コマンドは通常、~/.bash_history提供されたすべての引数(この場合はパスフレーズ)を含むプレーンテキストでファイル(または同様のもの)に記録されることに注意してください。したがって、特別な理由がない限り、最初のオプションを使用することをお勧めします。

ただし、 nor-f keyfileを指定しなくても使用でき、キーファイルのデフォルトはであるため、多くの場合、必要さえないことに注意してください。-P-N~/.ssh/id_rsa

パスフレーズを一時的にキャッシュできるssh-agentの使用を検討することをお勧めします。gpg-agentの最新バージョンは、ssh-agentで使用されるプロトコルもサポートしています。

于 2008-09-21T22:42:09.353 に答える
43

以下を .bash_profile (または同等のもの) に追加すると、ログイン時に ssh-agent が開始されます。

if [ -f ~/.agent.env ] ; then
    . ~/.agent.env > /dev/null
    if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
        echo "Stale agent file found. Spawning new agent… "
        eval `ssh-agent | tee ~/.agent.env`
        ssh-add
    fi 
else
    echo "Starting ssh-agent"
    eval `ssh-agent | tee ~/.agent.env`
    ssh-add
fi

一部の Linux ディストリビューション (Ubuntu、Debian) では、以下を使用できます。

ssh-copy-id -i ~/.ssh/id_dsa.pub username@host

これにより、生成された ID がリモート マシンにコピーされ、リモート キーチェーンに追加されます。

詳細については、こちらこちらをご覧ください。

于 2008-09-22T00:10:53.353 に答える