~/.ssh/id_rsa.pub
を BitbucketのSSHキー に 説明 としてアップロードしましたが、Gitはすべての操作でパスワードを要求します(git pull
など)。私は何か見落としてますか?
これはプライベートリポジトリ(他の人のプライベートリポジトリのフォーク)であり、次のようにクローンを作成しました。
git clone [email protected]:Nicolas_Raoul/therepo.git
これが私のローカル.git/config
です:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "Origin"]
fetch = +refs/heads/*:refs/remotes/Origin/*
url = https://[email protected]/Nicolas_Raoul/therepo.git
[branch "master"]
remote = Origin
merge = refs/heads/master
同じ公開キーを持つ同じ環境で、GithubのGitは正常に機能します。.ssh
はrwx------
、.ssh/id_rsa
は-rw-------
、.ssh/id_rsa.pub
は-rw-r--r--
です
Ssh URLを使用してクローンを作成しましたか?
OriginのURLはurl = https://[email protected]/Nicolas_Raoul/therepo.git
と言うので、httpsを使用している場合、sshキーに関係なくパスワードを要求します。
そのすでに答えた。上記を確認する手順を要約します。
プロジェクトディレクトリでgit remote -v
を実行します。出力がhttps://abc
で始まるリモートURLを示している場合、毎回ユーザー名パスワードが必要になる場合があります。
したがって、リモートURLを変更するには、git remote set-url Origin {ssh remote url address starts with mostly [email protected]:}
を実行します。
次に、git remote -v
を実行して、変更されたリモートURLを確認します。
参照: https://help.github.com/articles/changing-a-remote-s-url/
HTTPリクエストの場合、資格情報(パスワード付き)をURLに直接貼り付けることもできます。
http://username:[email protected]/...
これにより、毎回資格情報を提供する手間が省けます。 .git/config(URL)を変更するだけです。
これらの答えはどれも私を助けませんでしたが、私の問題はわずかに異なっていました。鍵を送信する前に毎回パスワードを要求するのはsshでした。したがって、私がしなければならなかったのは、このコマンドにパスワードをリンクすることでした:
ssh-add -K ~/.ssh/id_rsa
その後、パスワードの入力を求められ、保存されます。これは、パスワードの入力を求めるたびに次のように表示される場合に、探しているソリューションである可能性があります
キー「/Users//.ssh/id_rsa」のパスフレーズを入力します。
詳細 こちら
注:私はこれをMacマシンで正常に使用しましたが、@ Rob Kwasowskiが以下に指摘したように、大文字のK
オプションはMacに固有です。 Mac以外の場合は、小文字のk
を使用する必要があります(おそらくMacでも動作しますが、テストしていません)。
ステップ1:git-credential-winstoreをインストールする
https://confluence.atlassian.com/bitbucketserver/permanently-authenticating-with-git-repositories-776639846.html
ステップ2:git config --global credential.helper 'cache --timeout 3600'
これにより、パスワードが1時間保存されます
以下は、iTerm/Terminalを介したbitbucketへのコマンドラインアクセスを想定しています。
MacOS Sierra10.12.5の場合、私のシステムは同等の問題を明らかにしました-bitbucketへの各接続でSSHパスフレーズを要求します。
この問題は、macOS 10.12.2のOpenSSHアップデートに関連しています。これについては、ここで テクニカルノートTN2449 で説明しています。
ソリューションを調整することをお勧めしますが、〜/ .ssh/configファイルに追加すると次のように機能します。
Host *
UseKeychain yes
Ssh構成の詳細については、ssh_configのmanページをご覧ください。
% man ssh_config
もう1つのこと:superuserhere には、この問題とニーズに応じたさまざまな解決策についての適切な説明がありますそしてセットアップ。
リポジトリをSSH URLではなくHTTPS URLで複製したため、SSHキーを追加した後でも、Bash Shellでパスワードを要求されていました。
./.git/config
ファイルを編集し、https://
をssh://
に置き換えるだけでurl
変数の値を変更しました
例えば。
[core]
...
...
...
[remote "Origin"]
url = https://<username>@bitbucket.org/<username>/<repository_name>.git
fetch = +refs/heads/*:refs/remotes/Origin/*
...
...
...
変更後:
[core]
...
...
...
[remote "Origin"]
url = ssh://<username>@bitbucket.org/<username>/<repository_name>.git
fetch = +refs/heads/*:refs/remotes/Origin/*
...
...
...
SSH IDファイルを再確認する必要がある場合があります。 BitBucketに保存した同等の公開キーとは異なる/誤った秘密キーを見るようにBitBucketをガイドしている可能性があります。
tail ~/.ssh/config
で確認してください-次のようなものが表示されます:
Host bitbucket.org
HostName bitbucket.org
IdentityFile ~/.ssh/personal-bitbucket-ssh-key
追加のID(職場や自宅など)の追加は、ssh-add
コマンドを使用して実行できることを忘れないでください。次に例を示します。
ssh-keygen -t rsa -C "companyName" -f "companyName"
ssh-add ~/.ssh/companyName
どの秘密キーがローカルで表示されているかを確認したら、この場合、公開されている同等のキーを取得できます。
cat ~/.ssh/personal-bitbucket-ssh-key.pub | pbcopy
そして、その暗号をBitBucketに貼り付けます。お使いのデバイスは使いやすいと認識されているため、パスワードなしでgit pushが許可されます(前述の回答が指摘したようにSSHクローンを使用している場合)。
うまくいけば、これは誰かのためにそれをクリアするのに役立ちます。
私と一緒に、「git clone ssh://[email protected]:7999/projName/projA.git」を実行しましたが、クローンした新しいリポジトリのパスワードの入力を求められていました。/configファイルが動作する他のリポジトリへ、[remote "Origin"]セクションの下のURLであることが判明しました。新しいリポジトリの場合は上記のsshパスに設定されましたが、動作中のリポジトリの場合はhttps:xxxに設定されました。
私はログインに関して他の奇妙さを抱えていました。私はまったく馬鹿げているように見えましたが、私の場合はうまくいきました。 MacOSのキーチェーンに移動するだけです。サイドバーでログインロックアイコンを見つけます。クリックしてログアウトし、クリックしてログインします。馬鹿げているように聞こえるが、それは私の問題を解決した。試してみる価値。