https://www.bitbucket.com のプライベートリポジトリでプロジェクトに取り組んでいます。
ローカルでコーディングし、BitBucketのWindows Gitクライアント Sourcetree を使用して、更新のステージング、コミット、プッシュを行っています。
その後、リモートsharedサーバーからファイルをプルします。これにはSSH認証が必要です。
Gitリポジトリをbitbucketアカウントに接続するために、次のことを試しました。
C:/Project
_と呼びましょう。git init
_を使用して、リポジトリを初期化しました。git Push -u Origin --all
_を使用しました。Permission denied (publickey).
ssh -Tv [email protected]
_できるかどうか試してみました-それでも、_Permission denied
_。私は正確に何が間違っていたかを理解しようとしています-それは私のSSHキーをまったく見つけましたか?キーは特定の場所にロードされていませんか?
注:BitBucketのプロファイルに公開キーをロードしました。
まあ-私は多くの試行錯誤の後に解決策を見つけました。どうやら、PuTTYのkeygenを使用して、_.ssh
フォルダーが機能しません。ただし、ssh-keygen
IN GIT BASHそして、新しく生成されたキーペアを使用してログインしようとすると、正常に機能します。何よりも好奇心から-私はこれがなぜそうなのか知りたいです。
Macで新しいSierraを使用している場合に同じ問題が発生する可能性のある人。解決策は、次の方法で秘密鍵をSSHエージェントに追加することです。
ssh-add -K ~/.ssh/id_rsa
ID [id_rsa]はSSHエージェントによって保持されないようです。
これは永続的な解決策ではないことに注意してください。新しいリポジトリを複製するたびにそれを行う必要があります。少なくとも、リモートへのプッシュごとに秘密鍵を提供する必要はありません。
--------アップデート2017年9月28日--------
永続的なソリューション(シエラで):
手順:
1-何かをする前に、バックグラウンドで実行中のssh-agentがあることを確認してください。
Ssh-agentが実行されているかどうかを確認するには:
pgrep 'ssh-agent'
そのコマンドは、実行中のプロセスのPID(ProcessID)を返します。値が表示された場合..ステップ2に進みます。そうでない場合は、そのエージェントをバックグラウンドで実行する必要があります。
eval "$(ssh-agent -s)"
2-編集~/.ssh/config
(su
として存在しない場合は作成):
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
3-次に、そのキーエージェントを追加します(これは1回になります)。
ssh-add -K ~/.ssh/id_rsa
それでおしまい。
実際にはステップ#2が重要です。完全なガイドを提供したいだけです。
それがお役に立てば幸いです。」.
これらの設定SourceTreeをさらに変更する必要がありました。
私はこれが解決されたことを知っていますが、受け入れられた答えに追加するために、これが機能するために実際にGit Bashを必要としません。 Cupcakeが言ったように、PuTTYが秘密キー用の.ppk
ファイルを出すことは事実です。これは通常のPuTTY/Pageantコンテキスト以外では機能しません。
これは、ターミナルがデフォルトでid_rsa
という名前のファイルを~/.ssh
で見つけることを期待し、PuTTYがデフォルトでそれを生成しないためです。しかし、Git Bashのssh-keygen
は機能します。そのため、Tom Granotのソリューションは機能します。ただし、PuTTYキージェネレーターを使用して、メニューのConversions/Export OpenSSH Key...
オプションを使用して、まったく同じファイルをエクスポートできます。必ずid_rsa
という名前を付けて、id_rsa.pub
ファイルの隣に配置してください。すべて正常に機能するはずです。
これは、MacでSourcetreeを更新した後に起こりました。私のために働いたのは、~/.ssh/
フォルダーと.config
フォルダーを除くknown_hosts
フォルダー内のすべてを単に削除することでした。次に、基本設定でソースツリーに移動し、githubアカウントを削除し、すべての.ssh
公開鍵と秘密鍵を削除してからプロファイルを再度追加します。ソースツリーはローカルおよびGitHubに鍵を再追加する必要があります