Github権限が拒否されました:ssh addエージェントにIDがありません


148

初めてGitHubにアクセスしたので、コンソールの使用経験はありません。私はBashを使用しているMacBookを使用しています。GitHubにアクセスしようとすると、次のようになります。

git clone git@github.com:dhulihan/league-of-legends-data-scraper.git
Cloning into 'league-of-legends-data-scraper'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

許可が拒否されたことについて、Githubページの指示に従ってみました。

を使用するssh -vT git@github.comと、次のようになります。

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/XXXX/.ssh/id_rsa type -1
debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/XXXX/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/XXXX/.ssh/id_rsa
debug1: Trying private key: /Users/XXXX/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

次に、eval "$(ssh-agent -s)"「エージェントpid 2314」をssh-add -l返しますが、「エージェントにはIDがありません」を返します。

そして、それは私が行き詰まっているところです。


あなたはか持って作成されたSSH鍵の?githubアカウントにリストされていますか?Macにキーはありますか?
Etan Reisner

私はその質問への答えを探していました(このシステム全体に精通していない)、これを見つけました:mac.github.comそれは私のすべての問題を解決しました。私はそれを強くお勧めします。エタン、正しい方向に進んでくれてありがとう!
暗い

4
この質問への回答を追加し(問題がどのように問題を解決したかについての詳細も含めて)、回答を受け入れます。
Etan Reisner、2014年

さて、私は答えを提出しました。2時間でしか受け入れられないと私は言っています。
ダーク

回答:


194

この回答の詳細。

とき要約すると、ssh-add -l戻り「エージェントは何のアイデンティティを持っていない」、それはで使用されているキーを意味ssh(のようなファイルに保存されている~/.ssh/id_rsa~/.ssh/id_dsaいずれか欠落している、それらが知られていないされている、など)ssh-agent認証エージェントである、またはその権限ことをされ、正しく設定されていません(たとえば、誰でも書き込み可能)。

あなたのキーが不足しているか、いずれかを生成していない場合は、使用している場合ssh-keygen -t rsaは、ssh-addそれらを追加します。

キーは存在するが不明ssh-agentな場合(非標準フォルダーにある場合など)、を使用ssh-add /path/to/my-non-standard-ssh-folder/id_rsaして追加します。

またはに  問題がある場合は、この回答を参照してください。ssh-addssh-agent


4
素晴らしく短い回答へのリンクをありがとう@Doedoe。そして、keyS(つまり、複数のGitアカウント)ssh-add /path/to/keyXを持っている人は、特に非標準の名前を持っている場合は、それぞれに使用する必要があるかもしれません。詳細はこちら:stackoverflow.com/questions/3225862/…(良い答え)
tuk0z

これをありがとう。私はここで行き詰まりました。しかし、問題の権限部分を解決した後、ssh-add もう一度実行する必要があることに気付きました。この後、動作ssh -vT git@github.comしませんでした。上記のコメンターのように絶対パスを追加する必要がありました。それから、それはすべて肉汁でした。
jungledev 2016年

2
2番目のケースでは、パスフレーズを忘れて、help.github.com
articles /

111

これを試して:

ssh-add ~/.ssh/id_rsa

私のために働いた


5
こんにちは、SOへようこそ。他のユーザーが何が起こっているのかを理解できるように、コードを説明してください。乾杯。
クトゥルフ

4
再起動すると、キーがなくなってしまい、もう一度「ssh-add」する必要があります。
Louwki、2016年

@Louwkiうん...それは超迷惑です。あなたはそれを回避する方法を知っていますか?
Chris Cirefice 2017

3
@ChrisCireficeは、パラメーターを使用してssh-addを実行し、キーチェーンに永続的に追加します。ssh-add
-K〜

1
私の場合、秘密鍵のファイル権限が間違っていました。chmod 600 ~/.ssh/id_rsaその後で修正ssh-add ~/.ssh/id_rsa
Morteza Ziyae

39

macOS Sierra&High Sierra&Catalinaの2019年の回答:

PS:他のほとんどの回答では、新しいsshキーを作成する必要があります...しかし、それを行う必要はありません:)

https://openradar.appspot.com/27348363で詳細に説明されているように、Yosemiteがコマンドによって追加されたSSHキーを記憶するために使用するまでのmacOS / OS Xssh-add -K <key>

それで、それが機能するために私が取らなければならなかった4つのステップがあります:

1: ssh-add ~/.ssh/PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)

2:以下を追加~/.ssh/config

Host * 
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)

3: osxkeychainヘルパーを使用するgitconfigエントリを必ず削除してください:

 https://github.com/gregory/dotfiles/commit/e38000527fb1a82b577f2dcf685aeefd3b78a609#diff-6cb0f77b38346e0fed47293bdc6430c6L48

4:端末を再起動して有効にします。


3
すばらしい回答です。私はこれについて自分で説明しました。どうやら、OS X 10.12.2以降では、IDがssh-agentに自動的に読み込まれません(私は個人的には非常に愚かなユーザビリティの決定だと思いますが、セキュリティへの影響を理解しています)。そのため、SSH構成を変更して手動でロードする必要があります。エラー出力が1時間のインターネット検索よりも解決策につながることを望みます。
Chris Cirefice 2017

12

私は同じ問題にしばらく悩まされてきましたが、最終的に解決しました。

私の問題:プッシュを実行できませんでした。(を使用してgit remote -v)自分のリモコンをチェックして確認することはできましたが、を実行するとgit push origin master、が返されましPermission denied (publickey). fatal: Could not read from remote repository.た。

解決方法:

  • を使用してキー生成しましたssh-keygen -t rsa。キーファイルの名前を入力しても(要求された場合)、役に立たなかった。
  • 私は、可能性(のgitの)キーを追加ssh-add /Users/federico/.ssh/id_rsa、正常に返さIdentity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
  • このヘルプページを使用して、SSHキーをgithubに追加しました
  • Githubの「Permission denied publickey」ヘルプページのすべてのコマンドを試したところ、コマンドのみがssh-add -l機能し、前の手順を実行した後は有用であると思われ、キーが正常に返されました。最後のステップは、GitHubページで公開鍵を確認する場所を示しています。そして、このコマンドは、すべてのキーをチェックするのに役立ちますls -al ~/.ssh

その後、pushコマンドが最終的に機能しました。

これが役に立てば幸いです!幸運を祈ります。


7

次のコマンドを実行します。

ssh-keygen -t rsa
ssh-add /Users/*yourUserNameHere*/.ssh/id_rsa** 
pbcopy < ~/.ssh/id_rsa.pub**

Githubアカウントにアクセスします:https : //github.com/settings/profile

1)クリック:SSHおよびGPGキー

2)新しいSSHキーと過去のキー

3)SSHキーを追加

できた!


うん-id_rsa.pubファイルを作成する他の手順を実行した場合は、そのpbcopy行をコピーして貼り付け、キーをクリップボードにコピーし、@ zouhairの指示に従います-githubはキーを知っている必要があります。特に2FAを使用している場合。
-davidrynn

現在のドキュメントではgitがgithub_rsa / github_rsa.pubを作成すると言っているので、少し混乱しています。/.sshディレクトリに両方ありますが、「許可を得る」ことができません。id_rsaを使用して同じディレクトリにコピーを作成しましたが、役に立ちません。
MarkLöwe19年

6

まず最初に、あなたのsshディレクトリに移動して
、このタイプのコマンドをMacのターミナルで実行する必要があります

cd ~/.ssh

これはssh
にあり、すべてのプロジェクトに関連するすべてのsshキー/ファイルを見つけることができます。ここで、次のコマンドを入力して、使用可能なSSHキーがあるかどうかを表示します

ls

これにより、使用可能なsshがすべて表示されます。私の場合は、2つ
ありました。sshを追加するには、エージェントを起動する必要があります。このタイプの場合、次のコマンド

eval "$(ssh-agent -s)"

最後になりましたが、次のコマンドでこのエージェントタイプにsshを追加します

ssh-add ~/.ssh/your-ssh

取り替える

your-sshを、2番目のステップでリストフォームから取得したsshファイル名に置き換えます ls command


5

これにより、新しい端末が発生する可能性があります。エージェントIDが異なります。エージェントの秘密鍵を追加する必要があります

$ ssh-add <path to your private key>

1

私が気付いたもう1つの要素は、通常.sshフォルダーがMac OS X / Users /のルートフォルダーに作成されることです。別のフォルダーからssh -vT git@github.comを使用しようとすると、正しいキーを追加した場合でもエラーが発生します。

認証を成功させるには、現在のフォルダーから鍵を再度追加する必要があります(ssh-add 'id_rsaへの正しいパス')(Gitでプロファイルに鍵をすでにアップロードしていると想定)


1

これは私のために働きました:
chmod 700 .ssh chmod 600 .ssh/id_rsa chmod 644 .ssh/id_rsa.pub

次に、次のように入力します。 ssh-add ~/.ssh/id_rsa


問題は~/.ssh許可に関するものではないと思います。それでも、完全なコマンド(ここchmod)を追加し、これが何をするのか、なぜ必要なのかを説明することで、答えを大幅に改善できます。
Robert

0

長い間苦労した後、私はようやくWindowsでこの問題を解決することができました。私にとって、ユーザー環境変数GIT_SSHは、

「C:\ Program Files(x86)\ WinScp \ PuTTY \ plink.exe」

WinScpと共にインストールされました。git-scm "C:\ Program Files \ Git \ usr \ bin \ ssh.exe"に付属するデフォルトのssh.exeを使用するようにポイントを変更しました


0

BitBucketの手順:

新しいキーを生成したくない場合は、SKIP ssh-keygen

ssh-keygen -t rsa 

公開鍵をクリップボードにコピーします。

clip < ~/.ssh/id_rsa.pub

Bit Bucketにログインします。[プロファイルの表示]-> [設定]-> [SSHキー]に移動します([セキュリティ]タブ)[キーの追加]をクリックし、ボックスにキーを貼り付けて、説明的なタイトルを追加します

Git Bashに戻ります。

ssh-add -l

あなたは得るべきです:

2048 SHA256:5zabdekjjjaalajafjLIa3Gl/k832A /c/Users/username/.ssh/id_rsa (RSA)

今:動作するgit pullはずです


0

バックアップからハードドライブを復元した後、この問題が発生しました。

私の問題: (git remote -vを使用して)リモートを確認して確認できましたが、git push origin masterを実行すると、次のメッセージが返されました:Permission denied(publickey)。致命的:リモートリポジトリから読み取れませんでした。

SSHフォルダーとSSHキーが既にあり、ターミナル(ssh-add /path/to/my-ssh-folder/id_rsa)を介してそれらを追加するとIDが正常に追加されましたが、それでもプッシュできず、同じエラーが発生しました。AWSの他の非常に安全なアクセス許可に関連付けられていたため、新しいキーを生成することは私にとって悪い考えでした。

キーとGithubプロファイル間のリンクが壊れていることがわかりました。

解決策: プロファイル>設定> SSHおよびGPGキーでGithubにキーを再度追加すると、問題が解決しました。

また、 私のアカウントには2要素認証が設定されています。この場合、ターミナルが資格情報を要求する場合は、Githubパスワードではなく、ユーザー名を使用してください。2要素認証の場合、認証コードを使用する必要があります(私の場合、これは私の電話のAuthyによって生成されたもので、pwのためにターミナルにコピーする必要がありました)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.