Git for Windows(MinTTYおよびPuTTY\plink.exe
用に構成済み)とPuTTYがインストールされており、Bitbucketリポジトリで動作するようにしようとしています。 PageantとWebサイトにSSHキーをロードしましたが、プル/プッシュが必要なことをしようとするたびに:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
推奨されるssh -v [email protected]
を実行すると、id_rsa
が使用されますが、~/.ssh
の他のキーは使用されません。 ssh-add ~/.ssh/bitbucket_rsa
を使用しようとすると、次の結果になります。
Could not open a connection to your authentication agent.
転送を許可するようにPuTTYを構成することを読みましたが、通常はアドバイスが終了するところであるため、このオプションをデフォルトセッションに設定し、そこに保存します。
ps
を実行して、実行中のアプリケーションを確認しましたが、ssh-agent
は含まれていませんでした。 eval 'ssh-agent'
を実行するとデーモンが起動しますが、違いはありません。
これが私のために働いた結果です。
ところで、私はWindowsでもBashを使用していますが、それは問題ではないと思います。
Sourcetreeをインストールし、そのフォルダーを_plink.exe
_、_puttygen.exe
_、および_pageant.exe
_で指定しました。これらを個別にダウンロードしてインストールすることもできます。
Environment
」と入力します。それ以外の場合は、システムのプロパティ/システムの詳細設定を開き、環境変数を見つけます。plink.exe
_ファイルへのフルパス(同じフォルダーに_pageant.exe
_と_puttygen.exe
_がある場合もあります)。C:\Program Files (x86)\Atlassian\SourceTree\tools\PuTTY\plink.exe
plink.exe
_のコピーを作成して、変更しない場所に置くのが最善です。plink.exe
_へのパスを取得できます。必ず端末を再起動して、更新された環境変数を取得してください。私の場合、統合端末で Visual Studio Code 内でBashを実行していたため、Visual Studio Codeを再起動する必要がありました。統合された端末を閉じて新しい端末を開くことは間違いなく受け入れられますが、Visual Studio Codeの組み込みgit機能も同様に機能するようにしたかったのです。
Sourcetreeがインストールされていることを考えると、インターフェイスを使用してBitbucketからクローンダウンし、インターフェイスを介してプッシュすることができましたが、異なるクレデンシャルセットを使用していたため、ターミナルを介しての試行は機能しませんでした。
別の興味深い点は、プロジェクトの_./.git/config
_にあるgit構成に移動すると、リモートをSSHからHTTPSに交換できることです。 BitbucketリポジトリのOverviewから次の値を取得できます。
[email protected]:USERNAME/REPO_NAME.git
_https://[email protected]/USERNAME/REPO_NAME.git
_Windows 10でHTTPSを使用しているときにWindows Credential Managerを使用することに気付きました(自分でこれを理解しようとして資格情報を追加しようとしましたが、SSHを使用していたので問題ありません)リモートリポジトリを使用すると、資格情報の入力を求められ、後でWindows Credential Managerで使用するために保存されます。
うまくいけば、これらの方法のいずれかがあなたのために働くでしょう。 HTTPSメソッドは、SSHキーの生成全体をスキップしてBitbucketにプッシュしますが、私にとってはより安全で移植性があります。
特にVisual Studio Codeを使用していて、キーにパスフレーズがある場合は、キーチェーンにキーを追加する必要がある場合があります(現在、Visual Studio Codeではパスフレーズを入力できません)。
_ssh-add -K ~/.ssh/id_rsa
_
これらが誰かに役立つかどうかはわかりませんが、Windows用のVisual Studio CodeにSSHのサポートを取得しているところです: https://github.com/Microsoft/vscode/issues/1368 =。
あなたは物事を混ぜています。
PuTTYとPageantはOpenSSHツールと互換性がなく、相互に通信できません。 PuTTYはOpenSSHエージェントからキーを読み取ることができず、OpenSSHはPageantからキーを読み取ることができません。キーの形式も異なります。それはこの世界で悪いことですが、地平線上の解決策はありません。
また、「エージェント転送」は「エージェントの使用」とは異なるものです。
Gitをplinkで設定した場合(実際に行ったことを確認してください)、Pageantが実行されているかどうか、およびオプションの「Pageantを使用した認証」がPuTTYのConnection→- [〜#〜] ssh [〜#〜]→Auth。
問題が解決しない場合は、PuTTYからデバッグログを投稿してください。
SshでBitbucketを操作するためにPuTTYは必要ありません。git-for-windowsにパッケージ化されたOpenSSHバージョン(C:\prgs\git\PortableGit-2.7.0-64-bit\usr\bin\ssh.exe
)は問題なく動作します。
現在のシェルセッションで、HOMEが%USERPROFILE%
に設定されていることを確認してください(適切に構成された通常のCMDを開くにはPortableGit-2.7.0-64-bit\git-cmd.exe
で十分です)。
%USERPROFILE%\.ssh
にconfig
という名前のファイルを作成します( Atlassianドキュメントのステップ ):
Host bitbucket.org
IdentityFile ~/.ssh/bitbucket_rsa
(「/C/path/to/bitbucket_rsa
」も使用できます。)
これにより、bitbucket.org:user/repo
のようなSSH URLを使用できます。 ssh -Tv bitbucket.org
でテストします(もちろん、公開鍵をBitbucketアカウントに追加した後)。
注:ssh-agent
は、秘密鍵がパスフレーズで保護されている場合にのみ必要です。
2年後の2018年の更新:「 MicrosoftがWindows 10にOpenSSHクライアントを追加するときにPuTTYに別れを告げます 」。本当にPuTTYを捨てる時です:別の(ppk)キー形式と 独自のソリューション は必要ありません OpenSSH はWindows機能として正式に配布されています(ベータ版)今のところ、2018年第1四半期)。
Git Bash for Windows 7でうまくいったこと:.pkkファイルをOpenSSH形式に変換する:
生成されたキーをGit BashのIdentityFile .ssh/config
に追加します。例:
Host repository
# My converted OpenSSH key
IdentityFile /c/Users/me/open-ssh.pri
# This repository server uses a specific name, not usually needed.
User git
# This repository server uses a specific port, not usually needed
Port 8322
# Repository server full name
Hostname repo.server.com
Windows上のGitに付属しているGit BashからPageantにロードされたSSHキーにアクセスするには、 このプログラム を使用できます。インストールプロセスは、リンク先のページで説明されています。