ไม่สามารถผลักดันไปยังที่เก็บ Git บน Bitbucket


143

ฉันสร้างที่เก็บใหม่และฉันพบข้อผิดพลาดแปลก ๆ ฉันเคยใช้ Git มาก่อนใน Bitbucket แต่ฉันเพิ่งฟอร์แมตใหม่และตอนนี้ฉันไม่สามารถใช้ Git ให้ทำงานได้ หลังจากทำคอมมิชชันฉันต้องเพิ่มอีเมลและชื่อของฉันไปที่กลุ่ม แต่มันก็ใช้ได้ดี

เมื่อฉันลองใช้คำสั่ง

git push origin master

มันไม่ทำงาน ฉันได้รับข้อความนี้:

$ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

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

ฉันอยู่ที่การสูญเสียที่นี่ เพื่อนของฉันที่ฉันกำลังแชร์ที่เก็บนี้ด้วยเข้าถึงได้ดีและผลักดันให้มันใช้ได้ แต่ฉันไม่สามารถใช้งานได้


4
คุณสามารถใช้ https แทน gits ใน URL ระยะไกลของคุณ เช่น: yourusername@bitbucket.org/teamname/repository.git
Ali

1
ฉันแก้ไขปัญหาเดียวกันโดยติดตามการสอนของ Atlassian อย่างใกล้ชิดเกี่ยวกับวิธีการตั้งค่า SSH บนเครื่องของคุณ: confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git
sws

ปัญหาที่คล้ายกัน: stackoverflow.com/questions/12940626/…
JMoran

คำตอบ:


229

การเขียนสิ่งนี้สำหรับผู้ที่เพิ่งเริ่มต้นใช้งาน Git และ BitBucket บน Windows และผู้ที่ไม่คุ้นเคยกับ Bash (เนื่องจากเป็นทั้งปัญหาทั่วไปและผลการค้นหาระดับสูงของ Google เมื่อค้นหาข้อความแสดงข้อผิดพลาดภายในคำถาม)

สำหรับผู้ที่ไม่สนใจ HTTPS และผู้ที่กำลังมองหาวิธีการแก้ไขอย่างรวดเร็วให้เลื่อนไปที่ด้านล่างของคำตอบนี้เพื่อรับคำแนะนำภายใต้FOR THE LAZY

สำหรับผู้ที่ต้องการแก้ไขปัญหาจริงทำตามคำแนะนำด้านล่าง:

แก้ไขปัญหา SSH โดยเร็วที่สุด

นี่เป็นชุดคำสั่งที่ได้จาก URL ที่ลิงก์โดย VonC มันได้รับการดัดแปลงให้มีความยืดหยุ่นและรัดกุมที่สุด

  • อย่าพิมพ์$หรือบรรทัดใด ๆ ที่ไม่ได้ขึ้นต้นด้วย$( $หมายความว่านี่คือสิ่งที่คุณพิมพ์ใน GitBash)

  • เปิด GitBash

ตั้งค่าข้อมูลส่วนกลางของคุณหากคุณยังไม่ได้ทำ:

$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"

ตรวจสอบ OpenSSH:

$ ssh -v localhost
OpenSSH_4.6p1, OpenSSL...

เห็นอะไรเช่นนั้น

  • ใช่: ดำเนินการต่อ
  • ไม่: ข้ามไปยังส่วนFOR THE LAZYหรือติดตามบทความที่เชื่อมโยงจาก VonC

ดูว่าคุณได้สร้างกุญแจแล้ว:

$ ls -a ~/.ssh/id_*

หากมีสองไฟล์คุณสามารถข้ามขั้นตอนถัดไปได้

$ ssh-keygen

ปล่อยให้ทุกอย่างเป็นค่าเริ่มต้นป้อนวลีรหัสผ่าน ตอนนี้คุณควรเห็นผลลัพธ์ด้วยคำสั่งนี้:

$ ls -a ~/.ssh/id_*

ตรวจสอบไฟล์กำหนดค่าที่มีอยู่:

$ ls -a ~/.ssh/config

หากคุณได้รับผลตรวจสอบไฟล์นี้สำหรับข้อมูลที่ผิดพลาด หากไม่มีไฟล์ให้ทำดังต่อไปนี้:

$ echo "Host bitbucket.org" >> ~/.ssh/config
$ echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config

ยืนยันเนื้อหา:

$ cat ~/.ssh/config

Host bitbucket.org
 IdentityFile ~/.ssh/id_rsa
  • ต้องเว้นช่องว่างก่อน "IdentityFile"

ตรวจสอบว่าคุณเริ่มต้นตัวแทน SSH ทุกครั้งที่คุณเรียกใช้ GitBash:

$ cat ~/.bashrc
  • หากคุณเห็นฟังก์ชันที่เรียกว่าstart_agentขั้นตอนนี้เสร็จสมบูรณ์แล้ว
  • หากไม่มีไฟล์ให้ทำต่อ
  • หากมีไฟล์ที่ไม่มีฟังก์ชั่นนี้แสดงว่าคุณกำลังมีปัญหา มันอาจจะปลอดภัยที่จะผนวกเข้ากับมัน (ใช้คำแนะนำด้านล่าง) แต่มันอาจจะไม่ได้! ถ้าไม่แน่ใจให้สำรอง .bashrc ของคุณก่อนที่จะทำตามคำแนะนำด้านล่างหรือข้ามไปสำหรับคนขี้เกียจส่วน

ป้อนข้อมูลต่อไปนี้ใน GitBash เพื่อสร้างไฟล์. bashrc ของคุณ:

$ echo "SSH_ENV=$HOME/.ssh/environment" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "# start the ssh-agent" >> ~/.bashrc
$ echo "function start_agent {" >> ~/.bashrc
$ echo "    echo \"Initializing new SSH agent...\"" >> ~/.bashrc
$ echo "    # spawn ssh-agent" >> ~/.bashrc
$ echo "    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > \"\${SSH_ENV}\"" >> ~/.bashrc
$ echo "    echo succeeded" >> ~/.bashrc
$ echo "    chmod 600 \"\${SSH_ENV}\"" >> ~/.bashrc
$ echo "    . \"\${SSH_ENV}\" > /dev/null" >> ~/.bashrc
$ echo "    /usr/bin/ssh-add" >> ~/.bashrc
$ echo "}" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "if [ -f \"\${SSH_ENV}\" ]; then" >> ~/.bashrc
$ echo "     . \"\${SSH_ENV}\" > /dev/null" >> ~/.bashrc
$ echo "     ps -ef | grep \${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {" >> ~/.bashrc
$ echo "        start_agent;" >> ~/.bashrc
$ echo "    }" >> ~/.bashrc
$ echo "else" >> ~/.bashrc
$ echo "    start_agent;" >> ~/.bashrc
$ echo "fi" >> ~/.bashrc

ตรวจสอบว่าไฟล์ถูกสร้างขึ้นสำเร็จ (คุณควรแตกต่างกันเฉพาะที่ชื่อ "yourusername" ปรากฏขึ้น):

$ cat ~/.bashrc
SSH_ENV=/c/Users/yourusername/.ssh/environment

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi
  • ปิด GitBash แล้วเปิดใหม่
  • คุณควรถามรหัสผ่านของคุณ (สำหรับไฟล์ SSH ที่คุณสร้างไว้ก่อนหน้านี้)
  • หากไม่มีพรอมต์แสดงว่าคุณไม่ได้ตั้งข้อความรหัสผ่านหรือ GitBash ไม่ได้รันสคริปต์. bashrc (ซึ่งน่าจะแปลกดังนั้นควรพิจารณาเนื้อหาของมันด้วย!) หากคุณใช้งานบน Mac (OS X) ระบบ.bashrcจะไม่ดำเนินการตามค่าเริ่มต้น - .bash_profileคือ ในการแก้ไขปัญหานี้ให้วางตัวอย่างนี้ใน.bash_profile:[[ -s ~/.bashrc ]] && source ~/.bashrc

หากคุณไม่ได้ป้อนข้อความรหัสผ่านคุณจะเห็นสิ่งนี้เมื่อเริ่ม GitBash:

Initializing new SSH agent...
succeeded
Identity added: /c/Users/yourusername/.ssh/id_rsa (/c/Users/yourusername/.ssh/id_rsa)

และต่อไปนี้ควรส่งคืนผลลัพธ์:

$ ssh-add -l

อย่างไรก็ตามหากคุณได้รับสิ่งต่อไปนี้จากssh-add -l:

Could not open a connection to your authentication agent.

มันไม่ได้วางไข่ตัวแทน SSH และ. bashrc ของคุณน่าจะเป็นต้นเหตุ

หากเมื่อเริ่ม GitBash คุณจะเห็นสิ่งนี้:

Initializing new SSH agent...
sh.exe": : No such file or directory

นั่นหมายความว่าคุณลืมที่จะหลีกเลี่ยง $ ด้วย a เมื่อสะท้อนไปยังไฟล์ (เช่นตัวแปรถูกขยาย) สร้าง. bashrc ของคุณอีกครั้งเพื่อแก้ไขปัญหานี้

ตรวจสอบว่าเอเจนต์ทำงานอยู่และเพิ่มคีย์ของคุณแล้ว:

$ ssh-add -l

ควรส่งคืนสิ่งที่คล้ายกับสิ่งนี้:

2048 0f:37:21:af:1b:31:d5:cd:65:58:b2:68:4a:ba:a2:46 /Users/yourusername/.ssh/id_rsa (RSA)

เรียกใช้คำสั่งต่อไปนี้เพื่อรับกุญแจสาธารณะของคุณ:

$ cat ~/.ssh/id_rsa.pub

(ควรคืนบางสิ่งที่ขึ้นต้นด้วย "ssh-rsa ...... "

  • คลิกที่ไอคอนหน้าต่าง GitBash
  • คลิกแก้ไข
  • คลิกทำเครื่องหมาย
  • ไฮไลต์คีย์สาธารณะโดยใช้เมาส์ของคุณ (รวมถึงส่วนนำssh-rsaและส่วนท้าย== youremail@yourdomain.com)
  • คลิกขวาที่หน้าต่าง (ทำการคัดลอก)
  • วางกุญแจสาธารณะของคุณลงใน Notepad
  • ลบบรรทัดใหม่ทั้งหมดเพื่อให้เป็นเพียงบรรทัดเดียว
  • กดCTRL+Aจากนั้นCTRL+Cเพื่อคัดลอกกุญแจสาธารณะอีกครั้งไปยังคลิปบอร์ดของคุณ

กำหนดค่าคีย์ส่วนตัวของคุณด้วย BitBucket โดยทำตามขั้นตอนต่อไปนี้:

  • เปิดเบราว์เซอร์ของคุณและไปที่ไซต์BitBucket.org
  • เข้าสู่ระบบBitBucket.org
  • คลิกที่รูปประจำตัวของคุณ (บนขวา)
  • คลิกจัดการบัญชี
  • คลิกคีย์ SSH (ภายใต้ความปลอดภัยในเมนูด้านซ้าย)
  • คลิกเพิ่มคีย์
  • ป้อนGlobal Public Keyสำหรับป้ายกำกับ
  • วางรหัสสาธารณะที่คุณคัดลอกจาก Notepad

Global Public Keyรายการในขณะนี้ควรจะมองเห็นในรายชื่อของปุ่ม

  • กลับไป GitBash
  • cd ในไดเรกทอรีที่มีโครงการของคุณ
  • เปลี่ยนต้นกำเนิดของคุณเป็นรูปแบบ SSH (จะไม่เกิดขึ้นหากคุณดำเนินการตามขั้นตอนสำหรับ THE LAZY )

ตรวจสอบรีโมทของคุณ:

$ git remote -v

เปลี่ยนเป็น URL SSH:

$ git remote set-url origin git@bitbucket.org:youraccount/yourproject.git

ตรวจสอบสิ่งต่าง ๆ ให้เรียบร้อย:

$ git remote show origin

คุณควรเห็นสิ่งนี้:

Warning: Permanently added the RSA host key for IP address '...' to the list of known hosts.
* remote origin
  Fetch URL: git@bitbucket.org:youruser/yourproject.git
  Push  URL: git@bitbucket.org:youruser/yourproject.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

ทำ!

คุณสามารถเลือกใช้ HTTPS แทน SSH คุณจะต้องพิมพ์รหัสผ่านระหว่างการดำเนินการระยะไกล (แคชชั่วคราวหลังจากคุณพิมพ์ครั้งเดียว) นี่คือวิธีที่คุณสามารถกำหนดค่า HTTPS:

สำหรับขี้เกียจ

คุณควรแก้ไขปัญหา SSH ตามที่อธิบายโดย VonC แต่ถ้าคุณกำลังวิ่งที่จะกระทำและไม่ได้มีเครื่องมือที่ / เวลา / ความรู้ในการสร้างคีย์สาธารณะใหม่ในขณะนี้กำหนดแหล่งกำเนิดของคุณเพื่อเป็นทางเลือก HTTPS:

> https://accountname@bitbucket.org/accountname/reponame.git

โดยใช้เครื่องมือ GUI เช่นTortoiseGitหรือเครื่องมือบรรทัดคำสั่ง

นี่คือเอกสารของ URL ต้นทางอื่นนี้

บรรทัดคำสั่งเพื่อเพิ่มจุดเริ่มต้นหากไม่มีอยู่:

git remote add origin https://accountname@bitbucket.org/accountname/reponame.git

บรรทัดคำสั่งเพื่อเปลี่ยนต้นกำเนิดที่มีอยู่:

git remote set-url origin https://accountname@bitbucket.org/accountname/reponame.git

หมายเหตุ: ชื่อบัญชีของคุณไม่ใช่อีเมลของคุณ

คุณอาจต้องการตั้งค่าข้อมูลส่วนกลางของคุณ:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

จากนั้นลองกดอีกครั้ง (ไม่จำเป็นต้องส่งอีกครั้ง)

git push origin master

echo "Host bitbucket.org" >> ~ / .ssh.config ไม่ควรใช้ ' เป็น '/'?
ปีเตอร์

1
บางครั้งมันเกิดขึ้นที่คุณได้เพิ่มทุกอย่างที่กล่าวถึงข้างต้น~/.bashrcแต่ยังเมื่อคุณเรียกใช้คำสั่ง ssh-all -lมันยังคงแสดงNo agent ในกรณีนั้นลองใช้คำสั่งนี้ ssh-agent /bin/bashและจะInitializing new SSH agent...
shinesecret

5
หนึ่งในคำตอบที่ดีที่สุดที่ฉันเคยเจอใน StackOverflow
Sambhav Sharma

1
@JGallardo - เป็นคำถามที่ดี! ข่าวดีก็คือไม่มี เหล่านี้คือตัวแปรในสคริปต์ทุบตีเชลล์ซึ่งคล้ายกับตัวแปรสภาพแวดล้อมในไฟล์แบตช์
แกรม Wicksted

1
ความจริงที่ว่านี่ไม่ใช่คำตอบที่ยอมรับทำให้เจ็บใจ เขียนดีมาก!
ruby_newbie

58

ssh-agentข้อผิดพลาดนี้เกิดขึ้นหากคุณลืมเพิ่มคีย์ส่วนตัวถึง ทำสิ่งนี้ด้วย:

ssh-add ~/.ssh/id_rsa

4
มันเป็นคำตอบในกรณีของฉันสิ่งที่ฉันมักจะลืมเมื่อฉันสร้างรหัสใหม่
amertkara

1
นี่คือสิ่งที่ช่วยหลังจากผ่านโพสต์ด้านบน
Tony Merritt

มันทำงานให้ฉัน :) แต่คุณต้องให้แน่ใจว่าคุณมี SSH คีย์ส่วนตัวในไดเรกทอรีท้องถิ่นของคุณและกุญแจสาธารณะที่จดทะเบียนในบัญชีของคุณ bitbucket
แดเนียล

26

การฟอร์แมตใหม่หมายความว่าคุณอาจลบคีย์ ssh สาธารณะและส่วนตัว (ใน ~ / .ssh)

คุณต้องสร้างใหม่และเผยแพร่คีย์สาธารณะ ssh ของคุณในโปรไฟล์ BitBucket ตามที่ระบุไว้ใน " ใช้โปรโตคอล SSH ด้วย Bitbucket " ตามด้วย " ตั้งค่า SSH สำหรับ Git ด้วย GitBash "

บัญชี -> จัดการบัญชี -> คีย์ SSH:

http://solvedproblems.hydex11.net/_media/solved-problems/crazy-problems/bitbucket_manage_account.png

แล้ว:

http://solvedproblems.hydex11.net/_media/solved-problems/crazy-problems/bitbucket_add_ssh.png

รูปภาพจาก " การผสานรวม Mercurial / BitBucket กับซอฟต์แวร์ JetBrains "


8
เพียงแค่เพิ่มบิตนี้ ตรวจสอบให้แน่ใจว่าคุณใช้ BitBucket (ตามที่แสดงในภาพหน้าจอ) ว่าคุณเพิ่มคีย์ SSH ไปยังคีย์ SSH ของบัญชี (บัญชี -> จัดการบัญชี -> คีย์ SSH) การเพิ่มเป็นคีย์การปรับใช้ผ่านการตั้งค่าพื้นที่เก็บข้อมูลจะอนุญาตให้ใช้คีย์นั้นสำหรับการดำเนินการแบบอ่านอย่างเดียวเท่านั้น (ไม่มีการยืนยัน)
welshk91

@ welshk91 ฉันเห็นด้วย ฉันได้แก้ไขคำตอบเพื่อเพิ่มรูปภาพที่มีรายละเอียดมากขึ้น
VonC

1
@VonC - ขอบคุณที่โพสต์ข้อความนี้ ฉันพยายามอย่างไร้ผลที่จะให้สิ่งนี้ทำงานบนเครื่อง Windows และในที่สุดก็ทำแบบนี้ ขอบคุณเบ็น
ben18785

21

ฉันแก้ไขได้โดยลบคำสั่ง remote โดยใช้:

git remote remove origin

แล้วลองเพิ่มระยะไกลโดยใช้ https url แทน ssh

git remote add origin httpsUrl

มันขอข้อมูลประจำตัว GitHub ป้อนข้อมูลรับรองแล้วลองกดเพื่อคอมไพล์โดยใช้:

git push origin master

1
สิ่งนี้ช่วยฉัน นี่คือคำตอบที่ถูกต้องในกรณีของฉัน ขอขอบคุณ
binsnoel

มันใช้งานได้สำหรับฉัน ฉันไม่ได้ลบต้นกำเนิดฉันเพิ่งเพิ่มอันใหม่
shintaroid

ขอขอบคุณสำหรับการตอบกลับที่ตรงไปตรงมา ทำงานเหมือนมีเสน่ห์ - มันเป็นสิ่งที่ฉันกำลังมองหา
Alexandra

4

ผมมีปัญหาเหมือนกัน. ตั้งค่าคีย์ SSH ของฉันถูกต้องแล้ว ฉันแก้ไขปัญหานี้เช่นนี้

หลังจากสร้างโครงการใหม่ใน Bitbucket ให้ใช้โคลน ป้อนคำสั่งการโคลนในเทอร์มินัลและควรโคลนโครงการที่ไม่มีข้อมูลเข้ากับคอมพิวเตอร์ของคุณ หลังจากนั้นคุณสามารถคัดลอกไฟล์ของคุณไปยังไดเรกทอรีนี้และเริ่มการส่งและผลักดันไปยังบิตบูท


1
ช่างแปลกเหลือเกิน ฉันพบปัญหาเดียวกันกับ OP วันนี้ แต่ไม่ต้องทำการติดตั้งใหม่หรือมีการเปลี่ยนแปลงระบบคีย์ของฉันก็ใช้ได้ git remote addกระบวนการก็ไม่ได้ทำงานวันนี้ - ผมได้รับข้อผิดพลาดรับรองความถูกต้องในขณะที่พยายามที่จะผลักดัน - แต่ลบ .git แล้วใช้git clone& recopying แหล่งที่มาของฉัน (เพียง README.md) แทนการทำงานที่ดี ขอบคุณ Rafael - แน่นอนว่าฉันคงไม่คิดที่จะลองทำถ้าไม่ใช่เพื่อคำตอบของคุณ
kris

ดีใจที่โซลูชันนี้ช่วยคุณได้
Rafael

1
ขอบคุณสำหรับคำตอบ. ฉันสามารถแก้ไขปัญหาโดยเพียงแค่สร้างไดเรกทอรีใหม่และโคลนใน dir ใหม่นั้น mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Red Cricket


2

คำอธิบายเล็ก ๆ สองข้อที่อาจช่วยให้ใครบางคนสับสนฉันผ่าน:

1 - URL การเชื่อมต่อแตกต่างกันสำหรับ HTTPS และ SSH

เมื่อเชื่อมต่อผ่าน https คุณจะใช้

https://your_account_name@bitbucket.org/owner-account/repo-name.git

อย่างไรก็ตามเมื่อเชื่อมต่อผ่าน SSH ชื่อบัญชีจะเป็น"git" เสมอ

ssh://git@bitbucket.org/owner-account/repo-name.git

การพยายามเชื่อมต่อกับ SSH ด้วยชื่อบัญชีของคุณจะนำไปสู่ข้อผิดพลาดที่ผู้โพสต์ดั้งเดิมได้รับ นี่คือวิธีที่คุณสามารถทำการทดสอบการเชื่อมต่อกับ git @ จากนั้นลองใช้ชื่อผู้ใช้ของคุณผิดพลาดและดูข้อผิดพลาด

2 - คีย์ SSH ผ่านบัญชีทีมจะเลิกใช้ในปี 2560

หากคุณกำลังตั้งค่าคีย์ SSH ในบัญชีทีมพวกเขาแนะนำให้เปลี่ยนเป็นบัญชีส่วนบุคคล เคล็ดลับที่มีประโยชน์เพื่อหลีกเลี่ยง e


1

หากคุณใช้ SourceTree (ฉันใช้ 2.4.1) ฉันพบวิธีที่ง่ายกว่าในการสร้างคีย์ SSH และเพิ่มลงในการตั้งค่า Bitbucket ของฉัน สิ่งนี้ช่วยแก้ไขปัญหาให้ฉันได้

  1. ใน SourceTree ไปที่การตั้งค่า
  2. ไปที่แท็บบัญชีและเลือกบัญชีของคุณ
  3. ควรมีตัวเลือกในการสร้างและคัดลอกคีย์ SSH ไปยังคลิปบอร์ด
  4. เมื่อคุณคัดลอกแล้วไปที่ Bitbucket ในเบราว์เซอร์ของคุณ ไปที่ [avatar] -> การตั้งค่า Bitbucket
  5. ไปที่คีย์ SSH
  6. คลิกเพิ่มคีย์
  7. วางรหัสที่คุณคัดลอก

ฉันได้รับอีเมลยืนยันจาก Bitbucket ว่ามีการเพิ่มรหัส SSH ในบัญชีของฉัน

สำหรับการอ้างอิงบน macOS โดยใช้ Terminal คุณสามารถใช้คำสั่งต่อไปนี้เพื่อดูคีย์ที่สร้างขึ้นสำหรับอุปกรณ์ของคุณ นี่คือที่เก็บคีย์ที่คุณสร้างขึ้น

ls -la ~/.ssh

ดังที่คนอื่น ๆ ได้กล่าวไว้เอกสารนี้ช่วยฉัน: ใช้โปรโตคอล SSH กับ Bitbucket Cloud


1

ทำ ssh ให้เสร็จสิ้นเหมือนในบทช่วยสอน Atlassian และตรวจสอบให้แน่ใจว่ามีการวางกุญแจส่วนตัวในโปรไฟล์ไม่ใช่ในที่เก็บ :)


คุณช่วยกรุณารวมลิงค์ไปยังที่ระบุไว้ได้Atlassian tutorialหรือไม่? ขั้นตอนใดในการวางคีย์ในโปรไฟล์และฉันจะทราบได้อย่างไรว่าวางในที่เก็บหรือไม่
EmmanuelB

เธออยู่ที่นี่ เลือกตัวเลือกที่ดีที่สุดสำหรับการรวมเคสของคุณ! confluence.atlassian.com/bitbucket/…
Hector

0

ฉันได้รับข้อผิดพลาดเดียวกันนี้สำหรับที่เก็บหนึ่ง - ทันใดนั้นที่เหลือก็ทั้งหมดและยังทำงานได้ดีเมื่อฉันพยายามที่จะผลักดันคอมมิชชัน ปัญหาที่ดูเหมือนจะมีคีย์ SSH (ตามที่คุณรู้อยู่แล้วว่าจากความคิดเห็นก่อนหน้านี้) - เมื่อ bitbucket ไปที่แล้วคลิกView ProfileManage Account

ทางด้านซ้ายให้คลิกที่SSH Keysจากนั้นเพิ่มรายการที่คุณมีในระบบภายใต้ไดเรกทอรี ~ / .ssh /

หากคุณยังไม่ได้สร้างไว้ - ใช้คำแนะนำจากหนึ่งในโพสต์ แต่ให้แน่ใจว่าคุณใช้ไฟล์ id_dsa.pub เริ่มต้นหรือกำหนดเองที่มีชื่ออย่างใดอย่างหนึ่งในภายหลังต้องใช้-iตัวเลือกที่มีเส้นทางไปยังคีย์เมื่อคุณ เชื่อมต่อเช่น

ssh -i ~/.ssh/customkeyname username@ip_address

เมื่อคุณเพิ่มรหัสท้องที่ของคุณในบัญชีของคุณที่ bitbucket คุณจะสามารถเริ่มโต้ตอบกับที่เก็บของคุณ


0

ฉันพบวิธีแก้ปัญหาที่ใช้งานได้ดีที่สุดสำหรับฉันคือการแบ่งส่วนเล็ก ๆ ออกเป็นชิ้น ๆ

และลบไฟล์ภาพหน้าจอขนาดใหญ่ (10mb +) ออกจากคอมมิท

ความปลอดภัยไม่ได้เป็นปัญหาในที่สุดเพิ่มเติมเกี่ยวกับข้อ จำกัด ของไฟล์ bin


คุณได้รับข้อผิดพลาดด้านบนบันทึกโดย OP และไม่ใช่ปัญหาความปลอดภัยหรือไม่ มันเป็นขนาดของความมุ่งมั่นของคุณ?
JohnZaj

นั่นคือสิ่งที่เกิดขึ้น
Harry Bosh

0

ข้อผิดพลาดนี้จะปรากฏขึ้นเมื่อไม่มีที่เก็บ ฉันลองคำตอบทั้งหมดจนกว่าฉันจะเห็นชื่อ repo หายไป


0

สำหรับข้อผิดพลาด:

[ข้อผิดพลาด] การเข้าถึงที่เก็บข้อมูลถูกปฏิเสธ การเข้าถึงผ่านคีย์การปรับใช้เป็นแบบอ่านอย่างเดียว ร้ายแรง: ไม่สามารถอ่านจากที่เก็บระยะไกล โปรดตรวจสอบว่าคุณมีสิทธิ์การเข้าถึงที่ถูกต้องและมีที่เก็บข้อมูลอยู่

[ข้อผิดพลาด] ร้ายแรง: ไม่สามารถอ่านจากที่เก็บระยะไกล

[ข้อผิดพลาด] ร้ายแรง: ไม่พบผู้ช่วยเหลือระยะไกลสำหรับ 'https'

ฉันแก้ไขตามขั้นตอนนี้:

ก่อนติดตั้งการอ้างอิงนี้:

$ yum install expat expat-devel openssl openssl-devel

จากนั้นลบ git:

$ yum remove git git-all

ตอนนี้สร้างและติดตั้ง Git กับรุ่นล่าสุดในกรณีนี้:

$ wget https://github.com/git/git/archive/v2.13.0.tar.gz
$ tar zxf v.2.13.0.tar.gz
$ cd git-2.13.0/

จากนั้นสำหรับการกำหนดค่า:

$ make configure
$ ./configure --with-expat --with-openssl

และสุดท้ายติดตั้งแบบนี้:

$ make 
$ make install install-doc install-html install-info

นั่นคือตอนนี้กำหนดค่า repo ของคุณด้วย https:

$ git remote add origin https://github.com/*user*/*repo*.git
# Verify new remote
$ git remote -v

หากคุณได้กำหนดค่าคีย์ ssh ในเซิร์ฟเวอร์ระยะไกลของคุณคุณต้องลบมัน


0

ฉันได้รับข้อผิดพลาดนี้

การเชื่อมต่อกับ bitbucket.org ปิดโดยโฮสต์ระยะไกล ร้ายแรง: ไม่สามารถอ่านจากที่เก็บระยะไกล โปรดตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์การเข้าถึงที่ถูกต้อง

จากนั้นฉันก็ลอง

git config - ผู้ใช้ทั่วโลกอีเมล "you@example.com"

ทำงานโดยไม่มีเครื่องหมายคำพูด


0

ฉันพบบรรทัดคำสั่ง git ไม่ได้คิดว่ากุญแจของฉันสร้างขึ้นประกวด (Windows 10)

ดูคำตอบของฉันในServerfault


0

ฉันใช้ macOS และถึงแม้ว่าฉันได้ติดตั้งกุญแจสาธารณะของฉันใน bitbucket ในครั้งต่อไปที่ฉันพยายามผลักฉันได้

การเข้าถึงที่เก็บข้อมูลถูกปฏิเสธ

ร้ายแรง: ไม่สามารถอ่านจากที่เก็บระยะไกล

โปรดตรวจสอบว่าคุณมีสิทธิ์การเข้าถึงที่ถูกต้องและมีที่เก็บข้อมูลอยู่

สิ่งที่ฉันต้องทำคือขั้นตอนที่ 2 เพิ่มคีย์ลงใน ssh-agentดังอธิบายในคู่มือการติดตั้งคีย์ Bitbucket SSHและโดยเฉพาะอย่างยิ่งขั้นตอนที่ 3:

(macOS เท่านั้น) เพื่อให้คอมพิวเตอร์ของคุณจดจำรหัสผ่านของคุณในแต่ละครั้งที่รีสตาร์ทเปิด (หรือสร้าง) ไฟล์ ~ / .ssh / config และเพิ่มบรรทัดเหล่านี้ในไฟล์:

โฮสต์ *
UseKeychain ใช่

หวังว่าจะช่วยให้ผู้ใช้ mac ที่มีปัญหาเดียวกัน



0

ฉันมีปัญหานี้และฉันคิดว่าฉันบ้า ฉันใช้ SSH มา 20 ปีแล้ว และคอมไพล์ผ่าน SSH ตั้งแต่ปี 2012 ... แต่ทำไมฉันไม่สามารถดึงที่เก็บข้อมูล bitbucket บนคอมพิวเตอร์ที่บ้านของฉันได้?

ดีฉันมีสองบัญชี bitbucket และมี 4 คีย์ SSH โหลดภายในตัวแทนของฉัน แม้ว่า. ssh / config ของฉันได้รับการกำหนดค่าให้ใช้ปุ่มขวา เมื่อ ssh ทำการเริ่มต้นการเชื่อมต่อมันถูกใช้เพื่อเรียงลำดับลงในเอเจนต์ ดังนั้นฉันจึงเข้าสู่บัญชี bitbucket ส่วนตัวของฉัน

จากนั้นรับข้อผิดพลาดที่ต้องห้ามพยายามดึงข้อมูลซื้อคืน มีเหตุผล.

ฉันยกเลิกการโหลดกุญแจจากตัวแทน

ssh-add -d ~/.ssh/personal_rsa

จากนั้นฉันสามารถเรียกคืน repos

... ต่อมาฉันพบว่าฉันสามารถบังคับให้ใช้ข้อมูลเฉพาะตัวที่ระบุเท่านั้น

 Host bitbucket.org-user2
     HostName bitbucket.org
     User git
     IdentityFile ~/.ssh/user2
     IdentitiesOnly yes

ฉันไม่รู้เกี่ยวกับตัวเลือกสุดท้ายนั้น IdentitiesOnly

จากเอกสาร bitbucket เอง

https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/


-1

เพียงแค่พยายามที่

git remote add origin <HTTP URL>

1
เราไม่ชอบการพิมพ์ชื่อผู้ใช้ / รหัสผ่านทุกครั้งที่เราดึง / ผลักดันเข้าสู่ bitbucket / github / etc /
Mathieu J.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.