web-dev-qa-db-ja.com

リポジトリアクセスが拒否されました。デプロイメントキーを介したアクセスは読み取り専用です

Herokuから私のレポをうまくクローンしそして別のリモートを追加した後

1/ git clone [email protected]:[APP].git
2/ git remote add bitbucket ssh://[email protected]/[ACCOUNT]/[REPO].git
3/ git Push bitbucket master

Line(3)を実行した後、またはSourceTreeを使用した後、まだこのエラーが発生しています

conq: repository access denied. access via a deployment key is read-only.

まず、このメッセージが実際に何を意味するのか理解できません。そしてそれは残念です。

SSH鍵ペアを作成してherokuに追加しました。

ssh-keygen -t rsa 
heroku keys:add ./id_rsa.pub 

私はまた私のキーをBitBucketのデプロイキーセクションに追加しました。しかし、私は何かが足りないはずです。この質問は怠惰ではありません、私はBitBucketsガイドを含む様々なドキュメントを読んでいます。しかし、それでもまだこの問題を回避することはできません。

この投稿は に関連しています。私はheroku gitリポジトリをbitbuketにインポートできますか。そしてどうやって?

追加の事実:

ssh -T [email protected]
conq: authenticated via a deploy key.

You can use git or hg to connect to Bitbucket. Shell access is disabled.


$ ssh -v [email protected]
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/joel/.ssh/config
debug1: Applying options for bitbucket.org
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to bitbucket.org [207.223.240.181] port 22.
debug1: Connection established.
debug1: identity file /Users/joel/.ssh/id_rsa type 1
debug1: identity file /Users/joel/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'bitbucket.org' is known and matches the RSA Host key.
debug1: Found key in /Users/joel/.ssh/known_hosts:5
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: Offering RSA public key: /Users/joel/.ssh/id_rsa
debug1: Remote: Forced command: conq deploykey:13907
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: read PEM private key done: type RSA
debug1: Remote: Forced command: conq deploykey:13907
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
Authenticated to bitbucket.org ([207.223.240.181]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
PTY allocation request failed on channel 0

すべて問題ないようです。

296
zabumba

私の側で最初の混乱はBitBucketでSSH Keysを正確にどこに設定するかについてでした。

私はBitBucketに不慣れで、read-accessのみを与えるDeployment Keyを設定していました。

そのため、BitBucketアカウント設定rsa pub keyを設定していることを確認してください。

あなたのBitBucketアバターをクリックしてBitbucket Settingsアカウントを管理SSH Keysを設定できます。

Deployment Keyを削除しただけなので、今は必要ありません。そしてそれは働いた

enter image description here

706
zabumba

今SSHオプションはセキュリティ設定の下にあります

あなたのアバターをクリックします - > Bitbucket Settings - > SSH Key - > Add Key

公開鍵を貼り付けます

64
Sathish

あなたの鍵をあなたのプロファイルに追加し、NOTを特定のリポジトリに追加する必要があります。これに従ってください: https://community.atlassian.com/t5/Bitbucket-questions/How-do-I-add-an-SSH-key-as-opposed-to-a- deployment-keys/qaq-p/413373

17
Tomer

展開キーは読み取り専用です。書き込みアクセスを有効にするには、次の操作が必要です。

  • このデプロイメントキーをリポジトリ設定から削除してください。とにかくこのキーでこのレポに書くことはできません。

  • [アバター] - > [設定] - > [SSHキー]に移動して、同じキーを追加します。

  • 今ブランチを削除するにはプッシュしようとする

以前はリポジトリに書き込むことができましたが、これはBitBucketの変更点で、デプロイキーを使って書き込むことはできなくなりました。

13
timhysniu

'Deployment Key'は読み取り専用アクセス専用です。以下はこれをうまく処理するための良い方法です。

  • SSHキーを作成してbitbucketに追加します(ユーザーアバター - > Bitbucket設定 - > SSHキー)
  • 〜/ .ssh/known_hosts
  • ssh-add -D(SSHエージェントにロードされたキーを削除する)
  • ssh-add〜/ .ssh/your_private_key_for_bitbucket
  • ssh [email protected] -Tv(あなたのキーがbitbucketへの接続に慣れてきたことを確認してください)
  • git Push 'リモート名' 'ブランチ名'
10
Jerome Anthony

[アカウントSSHキーの管理]に同じキーを追加する場合は、最初に展開キーを削除する必要があります。

9
sent.ror

TLDR:ssh-add〜/ .ssh/yourkey

私はこの問題を解決しました。

そして他の答えのどれも助けにはならなかった。

私は./ssh/configにすべての適切なものを入れ、また以前のリポジトリはうまく動いていました(同じbitbucketアカウント、同じキー)。それから私はdeploy_keyを生成し、その後に新しいリポジトリを作成しました。

それ以降は新しいリポジトリを複製できませんでした。

Sshエージェントがどうやってこれをめちゃくちゃにしていたのか知​​っていたらいいのに、キーを追加して解決しました。 bitbucketの管理者ではなく、私のローカルのUbuntuにキーを追加するということです。コマンドは

    ~/.ssh$ ssh-add myregualrkey

これが誰かに役立つことを願っています。

8
Tjunkie

デプロイメントキーを使用しようとしていたときにこれが発生しました。

私はssh -T [email protected]経由で接続することができ、それは私が欲しいリポジトリを読むためのアクセス権を持っていることを私に教えてくれるでしょうが、git cloneは失敗します。

~/.ssh/known_hostsをクリアし、ssh-keygenを介して新しいキーを生成し、その新しいキーをbitbucketに追加し、再試行することで解決しました。

5
sarink

私は次の点を再強調したいと思います。

  • SSHキーをあなたのリポジトリに追加したかもしれません(例えばExampleRepo)、しかしこれはSSHキーがないところです行きます
  • あなたのプロフィールに入ることを意味します。 これは画面の左下隅にある小さなアバターです。ここで、の違いがわかります(セキュリティの下に)あなたのSSH鍵を置く場所>それからあなたは代わりにここに鍵を追加します。
  • あなたのSSHキーを(あなたのアカウントとは対照的に)誤ってリポジトリに入れてしまった場合は、リポジトリからそれを削除してください。

何とかしてここで答えを読んだ後でさえそれがかちりと鳴らなかったことを実現するために私に年齢を取った。

4
David Liu

最近私は同じ問題に直面しました。次のようなエラーが出ました。

リポジトリアクセスが拒否されました。デプロイメントキーを介したアクセスは読み取り専用です

SSHキーは2種類あります。

  1. あなたのアカウント全体に対して、すべてのリポジトリで動作します。
  2. リポジトリごとのSSHキー。特定のリポジトリにのみ使用できます。

私は自分のリポジトリのSSHキーを削除し、新しいSSHキーを自分のアカウントに追加したところ、うまくいった。

誰かに役立つことを願っています。乾杯

3
Yuness Mehdian

ステップ:

  1. 移行元サーバーでSSHキーを作成する

    ssh-keygen

  2. 〜。/ sshディレクトリの下にあるid_rsa.pubをコピーしてコピーします。

  3. Bitbucketに移動してください。リポジトリのアクセスキーをすでに設定している場合は、既存の公開キーを削除してください。
  4. Bitbucketアバター> Bitbucket設定> SSH鍵([セキュリティ]の左ペイン)> [鍵の追加]をクリックして>公開鍵を貼り付けます。
  5. ソースサーバで下記のコマンドを実行して動作するか確認してください

    git remote show Origin

  6. ソースサーバからの取得とプッシュの場合、プロトコルが「https」の場合は、以下のコマンドを実行して「git + ssh」に変更する必要があります。

    git remote set-url Origin git+ssh://<bitbucketaccount>@bitbucket.org/<accountname>/repo.git

  7. あなたがリポジトリにプッシュできるかどうかを確認してください。

完了しました。

2
rahul darga

まずBitbucketにプッシュするために使用したいキーを選択または作成します。その公開鍵が~/.ssh/bitbucket.pubにあるとしましょう

  • ログインしてあなたの公開プロフィール、設定、ssh-key、keyを追加して公開鍵をBitbucketに追加してください。
  • Bitbucketと通信するときにそのキーを使用するようにsshを設定します。例えば。 Linuxでは~/.ssh/configに追加:
    Host bitbucket.org
    IdentityFile ~/.ssh/bitbucket
2
Ivan Ogai

プッシュプルできる2段階プロセス
Step1:Mac上でsshキー(公開鍵と秘密鍵)を生成する

ステップ2:秘密鍵をmacに、公開鍵をgitのWebサイトに置く

以下の詳細な手順はMacユーザー向けです

ステップ1:鍵を生成する

  1. (gitがインストールされていることを確認してください) https://git-scm.com/download/mac
  2. 端末を開いてssh-keygenと入力すると、キーの保管場所を入力するように求められます。/Users/[machinename]/.ssh/[keyname]と入力することもできます。
  3. 次にパスフレーズの入力を求められます。Enterを押して空白のままにするか、次のプロンプトでもう一度入力するキーワードを入力してください。
  4. [keyname]と[keyname] .pubという名前で、プライベートとパブリックの2つのキーが作成されます。

ステップ2:適切な場所にキーを押す[Macとリモートアカウント、すなわちGithub、bitbucket、gitlabなど]

  1. 端末にssh-add -K ~/.ssh/[keyname]と入力して、秘密鍵をMacに追加します。
  2. 公開鍵をクリップボードにコピーするには、pbcopy < ~/.ssh/[keyname].pubと入力します。
  3. それぞれのgit Webサイトでアカウント設定を開き、キーを追加するには、上にコピーした公開キーを貼り付けます

完了したら、今すぐプッシュプルできます。

1

Kabir Sarinと同じ問題がありました。解決策は、https URLを使用するのではなく、SSH経由でリポジトリを複製することでした。だから、これは私、そしてうまくいけば他の人を助けたものです:

    git clone [email protected]:{accountName}/{repoName}.git
1
Lippai Zoltan

必要なのは - 別のキーを追加して使用することです。

私は最初のキーを見つけたので - 常に展開キー。

0
Victor Perov

~/.ssh/configでbitbucketに別のキーを手動で設定しているためにうまくいかないことがあります。

0
sean