私は自分のプロジェクトをビットバケツにプッシュしようとしていますが、無数の問題解決/ページ/トラブルシューティング/チュートリアルを注いで約4日間これをいじっています。私は途方に暮れ、非常に不満を感じています。私はこれを以前に行いましたが、別のコンピューターで...とにかくここに私が得ているコード/応答があります
~/dev/sample_app git Push -u Origin --all
The authenticity of Host 'bitbucket.org (131.103.20.168)' can't be established.
RSA key fingerprint is 81:7b:2c:f5:6f:18:2b:7c:4b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
~/dev/sample_app
10.8.4を実行しているMacを使用しています。
少し進歩しました。最初は.sshフォルダーがなかったので、最初からその方法で作成しました。known_hostsファイルはなかったので実行しました
ssh -T [email protected]
私はyesを選択し、これによりknown_hostsファイルが作成され、もう一度プッシュしようとすると次のようになりました:
~/dev/sample_app git Push -u Origin --all
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
私の.sshフォルダーは700で、中のキーはすべて600です。
IdentityFileフラグファイルは、次のように〜/ .ssh/configファイルに設定できます。
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
走るとき
ssh [email protected]
sshクライアントを使用すると、RSAまたはDSA認証のID(秘密鍵)を読み取るファイルを選択できます。
Git OriginのURLとしてsshを使用している可能性があります。そのようにssh Originを削除してみてください
git remote rm Origin
次に、HTTPS URLで新しいOriginを追加して、もう一度プッシュしてみます。
git remote add Origin https://[email protected]/SOMETHING/SOMETHING.git
git Push -u Origin master
OriginとしてURLをbitbucketから貼り付けてください。
システム管理者が恐ろしく反動するかもしれませんが、この問題に苦しんだ後(Windows)、SSHをあきらめてHTTPSに戻りました。
最初にリモートリポジトリをGitに追加するときに、SSH参照「[email protected]...
'とHTTPS URL' https://<username>@bitbucket.org
'。
パスワードを毎回入力する必要がありますが、特に* nixファミリーほどSSHが一般的に利用されていないWindowsでは、これはSSHの頭痛に比べてささいな不便さだと思います。
私の場合、Ubuntu 16の新しいマシンでは、~/.ssh
フォルダーにファイルがありませんでした。
~/.ssh
に移動しますssh-keygen
を実行し、ファイルに名前を付けます。つまり、id_rsa
cat ~/.ssh/id_rsa.pub | xclip -sel clip
を実行しますxclip
だけが_apt-get install xclip
を逃した場合:)Add key
をクリックして、クリップボードからキーを貼り付けますマジック-今すぐ動作:)
より持続可能な解決策は、.bashrc
(例:vi ~/.bashrc
)その後、次の行を追加します(キー名を置き換えます)
ssh-add ~/.ssh/YOUR_KEY
これにより、シェルの起動時にキーが自動的にロードされます
Linux(Ubuntu)でも同じ問題に直面しました。
git
のセットアップを使用して解決しました。
git config --global user.name "Your Name"
git config --global user.email [email protected]
CatおよびSSHキーを使用して公開キーをbitbucket.orgに印刷します。
$ cat ~/.ssh/id_rsa.pub
Bitbucketを追加してリポジトリをプッシュアップする:
git remote add Origin [email protected]:<username>/your repository name.git
git Push -u Origin --all
それで全部です!
git config --global user.name "My Name"
およびgit config --global user.email [email protected]
を使用してgitをセットアップした後、Permission Denied(publickey)エラーでまだ問題が発生していました。これを解決するために、最初に新しいsshトークンを生成しました。
ssh-keygen
そして、それをコピーしました
pbcopy < ~/.ssh/YOUR_KEY
その後、bitbucket.comにアクセスして、設定に新しいSSHキーとして追加しました。次に、端末に戻って新しいキーを追加します
ssh-add ~/.ssh/YOUR_KEY.
私が抱えていた大きな問題は、重要なssh-add [key]
コマンドを逃したことです。
BitBucketでも同様の問題がありました。私の場合、git cloneコマンドからSudoを削除する必要があることがわかった後でのみ修正されました!
Attlassian によると:
sudoを使用するべきではありませんクローン、プッシュ、またはプルの場合、ssh-agentはルートレベルではなくユーザーレベルで実行されるためです。
既存のSSHキーを確認する
ls -al ~/.ssh
SSHキーをコピーする
cat ~/.ssh/id_rsa.pub | pbcopy
コピーしたSSHキーを「Bitbucket Settings」、「Security」、「SSH Keys」に追加します。
これは明らかかもしれませんが、かなりの時間を費やしました。
実行時に宛先を確認するgit remote -v
私の場合、sshキーは完全にセットアップされていましたが、このコマンドの出力は次のとおりでした。
Origin [email protected]:USERNAME/REPOSITORY.git
(get not git)
ではなく
Origin [email protected]:USERNAME/REPOSITORY.git
繰り返しますが、これは非常に特殊なケースでしたが、問題が発生した場合は、このシステムの文字列を慎重に確認してください。
これは次のコマンドで修正できます。
git remote set-url Origin [email protected]:USERNAME/REPOSITORY.git
以前リポジトリにアクセスするためにHTTPSを使用していたような同様の問題が発生し、そのようにURLを設定してSSHに切り替える必要がありました。
git remote set-url Origin ssh://[email protected]/...
Windowsでは、@ efesaidの回答がssh接続テストの問題を解決するのに役立ちました。ところで、-vを追加して、試行されているキー(名前)と接続が失敗した理由を確認できます。
ただし、git @ bitbucket.org:user/repo.gitを使用してbitbucketにプッシュすると、ホストは正確にはbitbucket.orgではないようであるため、許可が拒否された問題が依然として発生していました。キーをid_rsaに(再)命名することで解決しました(これはsshテストで試行されたキー名です)。
これは、単一のrsaキーがある場合に機能します。複数のキーの場合、おそらく構成ファイルのホストは
bitbucket.org:username
しかし、これが元気かどうかはわかりません
私はビットバケツの指示が最高だと思います。 sshがインストールされているかどうかを確認し、インストールされていない場合は
krasen@krasen-Lenovo-Y50-70:~$ ssh -v
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I xxxxx] [-i identity_file]
[-L [bind_address:]port:Host:hostport] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R [bind_address:]port:Host:hostport] [-S ctl_path] [-W Host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
krasen@krasen-Lenovo-Y50-70:~$ ls -a ~/.ssh
. .. google_compute_engine google_compute_engine.pub identity identity.pub known_hosts
krasen@krasen-Lenovo-Y50-70:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/krasen/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/krasen/.ssh/id_rsa.
Your public key has been saved in /home/krasen/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx krasen@krasen-Lenovo-Y50-70
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| xx x |
| xxxxx |
| xxxxxxxxx |
| .xxxxxxxx |
| xxxxx |
| xxxxxxxxxxxx|
| xxxxxxxxxxxxx|
| xxxxxxxxxxx |
+-----------------+
krasen@krasen-Lenovo-Y50-70:~$ ls -la ~/.ssh
total 40
drwx------ 2 krasen krasen 4096 Jun 29 14:30 .
drwxr-xr-x 110 krasen krasen 4096 Jun 29 13:00 ..
-rw------- 1 krasen krasen 1675 Mar 18 2015 google_compute_engine
-rw-r--r-- 1 krasen krasen 409 Mar 18 2015 google_compute_engine.pub
-rw------- 1 krasen krasen 1679 Jun 29 13:15 identity
-rw-r--r-- 1 krasen krasen 409 Jun 29 13:15 identity.pub
-rw------- 1 krasen krasen 1679 Jun 29 14:30 id_rsa
-rw-r--r-- 1 krasen krasen 409 Jun 29 14:30 id_rsa.pub
-rw-r--r-- 1 krasen krasen 4698 Jun 29 13:16 known_hosts
krasen@krasen-Lenovo-Y50-70:~$ ssh-agent /bin/bash
krasen@krasen-Lenovo-Y50-70:~$ ps -e | grep [s]sh-agent
26503 ? 00:00:00 ssh-agent
krasen@krasen-Lenovo-Y50-70:~$ ssh-add ~/.ssh/id_rsa
Identity added: /home/krasen/.ssh/id_rsa (/home/krasen/.ssh/id_rsa)
krasen@krasen-Lenovo-Y50-70:~$ ssh-add -l
2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx /home/krasen/.ssh/id_rsa (RSA)
krasen@krasen-Lenovo-Y50-70:~$ cat ~/.ssh/id_rsa.pub
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
このキーを取得し、ビットバケツ設定のキーとして追加します
端末で正しいユーザーに切り替えたことを確認します。
私の場合、rootユーザーはbitbucket設定パネルでsshキーが追加されたユーザーではありませんでした。 Sudoでgitを実行すると、rootユーザーから実行され、自分のユーザーがキーを追加したユーザーでした。
Bitbucketサーバーからプルしようとしたときに同じエラーが発生していました。この回答は私を助けました https://stackoverflow.com/users/2957677/toby-mellor
代わりにSudo git pull Origin branch_name
変更git pull Origin branch_name
それは私の問題を修正しました
私の場合、ディレクトリからsshキーを追加することで問題を解決しました
~/.ssh/id_rsa.pub
on bitbucket.org 。ウェブサイトでもid_rsa.pubという名前を付けました。
最初に、私はbitbucket専用に作成した別のキーを追加し、そのような名前を付けました。最初のリモートアクションは機能しましたが、数日後に要求が拒否されました。
私の問題は、権限に関することでした。
プロジェクトディレクトリの所有者はroot
でしたが、ubuntu
としてログインしました。 gitコマンドを入力した場合、PERMISSION DENIED
を取得します。 git pull Origin master
なので、Sudo git pull Origin master
を使用しました。
ubuntu
のSSHキーを/home/ubuntu/.ssh/id_rsa.pub
からBitBucketに登録しました。
ただし、Sudo
を使用していました。したがって、使用されたSSHキーは実際には/home/root/.ssh/id_rsa.pub
であり、これはBitBucketが持っていたものとは異なりました。
私の場合の解決策
chown -R username_here:username_here project/folder/here
Sudo
を付加しなくても動作するようになりました
[〜#〜] or [〜#〜] BitBucket root
のキーを与える