私はgitを使い始めたばかりで、cmd.exe昇格を使用しているパスフレーズを思い出せず、gitホストはgithubであり、githubでそのガイドのようなsshキーを作成しています
しかし、私はまだ得る
*\subnus.mvc>git Push Origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':
私はこの質問が2歳のときに出てくることを理解していますが、私は同じ問題を抱えており、ここでいくつかの答えは完全に質問に答えませんでした。 msysgitに加えてTortoiseGitを使用するかどうかに応じて、2つの段階的なソリューションを示します。
最初の解決策Windows、msysgit、およびPuTTYを想定しています。
Windowsの環境変数ダイアログにアクセスします([コンピューター]を右クリックし、[プロパティ]をクリックします。[システムの詳細設定]または[詳細]タブをクリックし、[環境変数]をクリックします)。次の環境変数を追加します。
GIT_SSH = C:\ full\path\to\plink.exe
「C:\ full\path\to」を、plink.exeが見つかったPuTTYへの完全インストールパスに置き換えます。 「ユーザー変数」セクションに追加することをお勧めします。また、plink.exeに使用するパスがPageant(pageant.exe)に使用するパスと一致することを確認してください。場合によっては、PuTTYが他のアプリケーションと一緒にインストールされる可能性があるため、PuTTYが複数インストールされている場合があります。あるインストールのplink.exeと別のインストールのpageant.exeを使用すると、問題が発生する可能性があります。
コマンドプロンプトを開きます。
Github.comでホストされているgitリポジトリに接続しようとしている場合は、次のコマンドを実行します。
plink.exe [email protected]
接続しようとしているgitリポジトリが別の場所でホストされている場合、[email protected]を適切なユーザー名とURLに置き換えます。 (Githubを想定)サーバーのホストキーがキャッシュされていないことを通知し、信頼できるかどうか尋ねられます。 yと答えます。これにより、サーバーのホストキーがPuTTYの既知のホストのリストに追加されます。このステップがないと、gitコマンドは正しく機能しません。 Enterキーを押すと、Githubはシェルアクセスを提供しないことを通知します。それは大丈夫です...私たちはそれを必要としません。 (他のホストに接続していて、シェルにアクセスできる場合は、おそらく何もせずにリンクを終了することをお勧めします。)
2番目の解決策Windows、msysgit、およびTortoiseGitを想定しています。
TortoiseGitには、PuTTY実行可能ファイルと、物事を簡単にする特別に修正されたバージョンのplink(TortoisePlink.exeと呼ばれる)が付属しています。
Windowsの環境変数ダイアログにアクセスします([コンピューター]を右クリックし、[プロパティ]をクリックします。[システムの詳細設定]または[詳細]タブをクリックし、[環境変数]をクリックします)。次の環境変数を追加します。
GIT_SSH = C:\ full\path\to\TortoisePlink.exe
「C:\ full\path\to」を、TortoisePlink.exeが存在するTortoiseGitへのフルインストールパスに置き換えます。 「ユーザー変数」セクションに追加することをお勧めします。また、TortoisePlink.exeに使用するパスがPageant(pageant.exe)に使用するパスと一致することを確認してください。場合によっては、PuTTYが他のアプリケーションと一緒にインストールされる可能性があるため、PuTTYが複数インストールされていることがあります。 TortoiseGitインストールからTortoisePlink.exeを使用し、別のアプリケーションの別のインストール(またはスタンドアロンPuTTYインストール)からpageant.exeを使用すると、問題が発生する可能性があります。
全部終わった! Gitコマンドはコマンドラインから動作するようになりました。 gitリポジトリに初めて接続しようとすると、おそらくサーバーのホストキーがキャッシュされていないことが通知され、サーバーを信頼するかどうかを尋ねられます。 「はい」をクリックします。 (これは、動作中のTortoisePlink.exeです。)
Pageant.exe ブート時に自動的に.ppkファイルをロード が必要になる場合があります。これは、必要になる頻度によって異なります。
3番目の解決策Window、msysgit、およびネイティブコマンドプロンプトを想定しています。
start-ssh-agent
より詳細な手順が必要な場合は、このページを参照してください: http://help.github.com/working-with-key-passphrases/
質問が投稿されてから5年、8か月、6日後の1つの追加ソリューションは悪い考えではないので、ここに進みます。
注:Windowsコンピューターを使用していると仮定します。
PATH
環境変数にGITがある場合、それは機能するはずです。そうでない場合は、git-credential-winstore -i C:\Path\To\Git.exe
を実行します。次にリポジトリにコミットしようとすると、資格情報を入力するよう求められます。それであるはずです。パスワードを変更するまで、資格情報の入力は求められなくなります。
あなたの知識だけのために...あなたの資格情報はWindows資格情報ストアに保存されます
資格情報はどこに保存していますか?
このアプリは、既存のWindows資格情報ストアを使用して資格情報を保持するだけです。保存された資格情報を表示するには、[コントロールパネル]> [ユーザーアカウント]> [資格情報マネージャー]に移動し、[Windows資格情報]を選択します。 「git:」で始まるエントリは、git-credential-winstoreからのものです。
それはgitではなく、sshです。
私はウィンドウを行いませんが、sshにはパスフレーズを記憶できるエージェントの概念があります。 OS Xでは、これがデフォルトで有効になっています。あなたのsshクライアントにはおそらくこれを設定する方法があります。
キーファイルにパスワードを設定した場合、接続時に常にそのパスワードを入力する必要があります。パスワードなしのキーを作成する場合、毎回入力する必要はありませんが、キーファイルにアクセスできる人はだれでもgithubアカウントに接続できます。
ssh-agentも機能する場合があります。それを実行してみて、パスフレーズが記憶されるかどうかを確認してください。
[編集-質問を読み違え、これは関連する問題への答えです。後世のために言い換えバージョンを残す]
私の場合は、サーバーの1つでホストされているレポにプッシュしようとしていたということです。プッシュを実行しようとするたびに、gitはパスワードを要求します(nb-秘密鍵のパスフレーズではなくパスワード)。
私の公開鍵をサーバー上の許可された鍵に追加することにより、そのサーバーへのパスワードなしのプッシュを取得することができました。そして、秘密鍵にpassphraseがなかったので(これは悪い習慣です!)、何も入力する必要がありませんでした。
サーバーに公開鍵を追加するコマンドは次のとおりです。ユーザーgit
がサーバー上のユーザーであると想定しています。
cat .ssh/id_rsa.pub | ssh git@GIT_MASTER_IP 'cat >> .ssh/authorized_keys'
サーバーにログオンし、~/.ssh/authorized_keys
のファイルに公開キーを手動で追加することで、同じことを実現できます。
私はこれが数年遅れていることを知っていますが、解決策を見つけようとしてこの質問に出くわし、すべてのレベルの専門知識に合ったものを見つけたので、共有したいと思いました。
GitHubは、すべてを素晴らしく簡単にする非常に役立つインストーラーを提供します。 https://help.github.com/articles/caching-your-github-password-in-git/
パスワードがプレーンテキストで保存されていて、TortoiseGitを使用している場合は、この問題に対するmuchより簡単な解決策があります。
単に_netrc
ユーザープロファイルディレクトリ内のファイル-つまり、Windows 7ではC:\Users\MyName\_netrc
。このファイルには、ログイン情報が次の形式で保存されます。
machine bitbucket.org login thisismyname password p455w0rD
machine bitbucket.org login another_account password pwdpwdPWd
machine github.com login thisismynameagain password p455w0rD
TortoisePLinkをSSHクライアントとして使用していますが、問題なく動作します。
.bashrc
のようなユーザーのホームディレクトリにC:/Users/youruser
ファイルを作成し、そこに配置できます。
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
Elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
このスクリプトは、bashの実行後に毎回実行されます。したがって、git-bash
が開始されたときにパスワードを入力する必要があるのは1回だけです。
Bashの一部のバージョンでは、.bash_profile
の代わりに.bashrc
ファイルが必要です。そのため、クローン.bashrc
:
copy .bashrc .bash_profile
実行するときに-k argを追加してみてください。
ssh-add -k ~/.ssh/id_rsa