ラップトップで新しいSSHキーを作成するときにパスフレーズを設定しました。しかし、私が今理解しているように、1時間に何度もSSHを介してリモートの場所(GitおよびSVN)にコミットしようとすると、これは非常に苦痛です。
私が考えることができる1つの方法は、SSHキーを削除して新しいキーを作成することです。同じキーを維持しながら、パスフレーズを削除する方法はありますか?
ラップトップで新しいSSHキーを作成するときにパスフレーズを設定しました。しかし、私が今理解しているように、1時間に何度もSSHを介してリモートの場所(GitおよびSVN)にコミットしようとすると、これは非常に苦痛です。
私が考えることができる1つの方法は、SSHキーを削除して新しいキーを作成することです。同じキーを維持しながら、パスフレーズを削除する方法はありますか?
回答:
簡潔な答え:
$ 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で使用されるプロトコルもサポートしています。
ssh-keygen -p
に言うと、ターミナルで実行するだけです。次に、キーファイル(デフォルトでは正しいファイル~/.ssh/id_rsa
)、古いパスフレーズ(現在のものを入力)、および新しいパスフレーズ(何も入力しない)の入力を求められます。
ssh-keygen -p -P oldpassphrase -N "" -f ~/.ssh/id_rsa
~/.bash_history
です。次のように入力することをお$ cd ~/.ssh && ssh-keygen -f id_dsa -p
~/.bash_hstory
IEに記録されないことに注意してください。`ssh-keygen -p -P oldpassphrase -N" "-f〜/ .ssh / id_rsa`を使用すれば、問題ありません(他のキーロガーがない場合)。あなたはまた、可能性が履歴から、レコードを取り除く ...
$ ssh-keygen -p
私のために働いた
git bashを開きました。貼り付けました:$ ssh-keygen -p
Enterキーを押してデフォルトの場所を指定します。
古いパスフレーズを入力してください
新しいパスフレーズを入力してください-空白
新しいパスフレーズを確認-空白
BOOM git pushのパスフレーズを入力する手間がなくなりました。
ありがとう!
$ ssh-keygen -p
キーを押したときにキーがデフォルトの場所(/Users/yourname/.ssh/id_rsa)にない場合は/Users/yourname/.ssh/yourkey
、プロンプトが表示されたら入力することで応答できます
ログイン時にssh-agentを起動する.bash_profile(または同等のもの)に以下を追加することができます。
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がリモートマシンにコピーされ、リモートキーチェーンに追加されます。
パスフレーズを変更または削除するには、p
とf
フラグのみを渡すのが最も簡単で、パスフレーズを入力するようシステムに要求することがよくあります。
ssh-keygen -p -f <name-of-private-key>
例えば:
ssh-keygen -p -f id_rsa
パスフレーズを削除する場合は、空のパスワードを入力してください。
パスワードを削除または変更するためのサンプル実行は次のようになります。
ssh-keygen -p -f id_rsa
Enter old passphrase:
Key has comment 'bcuser@pl1909'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
パスフレーズのないキーにパスフレーズを追加すると、実行は次のようになります。
ssh-keygen -p -f id_rsa
Key has comment 'charlie@elf-path'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
でマックあなたは透明、それを利用して、あなたのキーホルダー、のあなたのプライベートのssh鍵のパスフレーズを保存することができます。ログインしている場合は使用できます。ログアウトしているときは、rootユーザーは使用できません。パスフレーズを削除することは、ファイルを持っている人なら誰でも使用できるため、お勧めできません。
ssh-keygen -K
これを追加 ~/.ssh/config
UseKeychain yes