web-dev-qa-db-ja.com

BitbucketのGit:SSH公開キーをアップロードした後でも、常にパスワードを要求されます

~/.ssh/id_rsa.pubBitbucketの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は正常に機能します。
.sshrwx------.ssh/id_rsa-rw-------.ssh/id_rsa.pub-rw-r--r--です

162
Nicolas Raoul

Ssh URLを使用してクローンを作成しましたか?

OriginのURLはurl = https://[email protected]/Nicolas_Raoul/therepo.gitと言うので、httpsを使用している場合、sshキーに関係なくパスワードを要求します。

239
manojlds

here で説明したように、 SSH URL、あなた しないでください プッシュ/プルするたびにユーザー名/パスワードを入力する必要があります。上記を確認してください answer by @manojlds

ただし、クローンを作成する場合は HTTPS そしてしたい 避ける 毎回ユーザー名/パスワードを入力すると、資格情報を保存できます キャッシュ 以下のコマンドで:

git config --global credential.helper 'cache --timeout 3600'

3600(秒)は1時間を意味しますが、要件に応じて変更できます。

30
Ajeet Shah

そのすでに答えた。上記を確認する手順を要約します。

プロジェクトディレクトリで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/

17
shiva kumar

HTTPリクエストの場合、資格情報(パスワード付き)をURLに直接貼り付けることもできます。

http://username:[email protected]/...

これにより、毎回資格情報を提供する手間が省けます。 .git/config(URL)を変更するだけです。

10
Sven W.

将来のGoogle社員の皆さん、こんにちは。

MacOS> = High Sierraでは、SSHキーはKeyChainに保存されなくなりました 理由により

ssh-add -Kを使用しても、再起動に耐えられなくなりました。

つの可能な解決策 です。

最初の方法を正常に使用しました。 ~/.sshconfigというファイルを作成しました:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
8
Vaiden

これらの答えはどれも私を助けませんでしたが、私の問題はわずかに異なっていました。鍵を送信する前に毎回パスワードを要求するのはsshでした。したがって、私がしなければならなかったのは、このコマンドにパスワードをリンクすることでした:

ssh-add -K ~/.ssh/id_rsa

その後、パスワードの入力を求められ、保存されます。これは、パスワードの入力を求めるたびに次のように表示される場合に、探しているソリューションである可能性があります

キー「/Users//.ssh/id_rsa」のパスフレーズを入力します。

詳細 こちら

注:私はこれをMacマシンで正常に使用しましたが、@ Rob Kwasowskiが以下に指摘したように、大文字のKオプションはMacに固有です。 Mac以外の場合は、小文字のkを使用する必要があります(おそらくMacでも動作しますが、テストしていません)。

5
stackPusher
4
webdev5

以下は、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 には、この問題とニーズに応じたさまざまな解決策についての適切な説明がありますそしてセットアップ。

4
pob

リポジトリを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/*
        ...
        ...
        ...
2
Swaroop Bhagwat

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クローンを使用している場合)。

うまくいけば、これは誰かのためにそれをクリアするのに役立ちます。

1
Grant

私と一緒に、「git clone ssh://[email protected]:7999/projName/projA.git」を実行しましたが、クローンした新しいリポジトリのパスワードの入力を求められていました。/configファイルが動作する他のリポジトリへ、[remote "Origin"]セクションの下のURLであることが判明しました。新しいリポジトリの場合は上記のsshパスに設定されましたが、動作中のリポジトリの場合はhttps:xxxに設定されました。

0
Ninos

私はログインに関して他の奇妙さを抱えていました。私はまったく馬鹿げているように見えましたが、私の場合はうまくいきました。 MacOSのキーチェーンに移動するだけです。サイドバーでログインロックアイコンを見つけます。クリックしてログアウトし、クリックしてログインします。馬鹿げているように聞こえるが、それは私の問題を解決した。試してみる価値。

0
smileBot