新しいキーを作成せずに SSH キーのパスフレーズを削除するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/112396

質問

ラップトップで新しい SSH キーを作成するときにパスフレーズを設定しました。しかし、今気づいたように、これはコミットしようとするとかなり苦痛です (ギット そして SVN) を 1 時間に何度も SSH 経由でリモートの場所に送信します。

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

役に立ちましたか?

解決

短い答え:

$ ssh-keygen -p

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

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

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

重要: コマンドを実行すると、通常はコマンドがログに記録されることに注意してください。 ~/.bash_history 提供されたすべての引数を含むプレーンテキストのファイル (または同様のもの) (つまり、この場合はパスフレーズです)。したがって、特別な理由がない限り、最初のオプションを使用することをお勧めします。ただし、まだ使用できることに注意してください -f keyfile 指定しなくても -P または -N, 、キーファイルのデフォルトは ~/.ssh/id_rsa, そのため、多くの場合は必要すらありません。

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

他のヒント

以下を .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 がリモート マシンにコピーされ、リモート キーチェーンに追加されます。

もっと読むことができます ここ そして ここ.

$ ssh-keygen -p 私のために働きました

git bashを開きました。貼り付けられました: $ ssh-keygen -p

Enter キーを押してデフォルトの場所を指定します。

古いパスフレーズを入力してください

新しいパスフレーズを入力してください - 空白

新しいパスフレーズを確認します - 空白

ドーンと、Git Push のパスフレーズを入力する煩わしさはなくなりました。

ありがとう!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top