ผมมีปัญหานี้เช่นกันเมื่อพยายามที่จะปรับใช้โค้ดบางส่วนใช้Capistrano น่าผิดหวังมาก ต่อไปนี้เป็นวิธีการสองวิธีที่ฉันทราบเพื่อจัดการกับปัญหานี้
วิธีที่ 1: เพิ่มคีย์ที่รู้จักทั้งหมดลงในตัวแทน SSH
ดังนั้นวิธีหนึ่งที่ฉันค้นพบก็คือรันssh-add
ด้วย-A
ตัวเลือก - ซึ่งจะเพิ่มอัตลักษณ์ที่รู้จักทั้งหมดให้กับเอเจนต์ SSH โดยใช้ข้อความรหัสผ่านที่เก็บไว้ในพวงกุญแจของคุณ - เช่นนี้
ssh-add -A
ตอนนี้ใช้งานได้ แต่มันจะไม่คงอยู่ในการรีบูต ดังนั้นหากคุณไม่ต้องกังวลกับปัญหานี้อีกให้เปิด~/.bash_profile
ไฟล์ของผู้ใช้ดังนี้:
nano ~/.bash_profile
และเพิ่มบรรทัดนี้ที่ด้านล่าง:
ssh-add -A 2>/dev/null;
ตอนนี้เมื่อคุณเปิดหน้าต่างเทอร์มินัลใหม่ทั้งหมดน่าจะดี!
วิธีที่ 2: เพิ่มเฉพาะคีย์ SSH ที่อยู่ในพวงกุญแจไปยัง บริษัท ตัวแทน
ดังนั้นในขณะที่ssh-add -A
ตัวเลือกควรทำงานในกรณีพื้นฐานส่วนใหญ่ฉันพบปัญหาเมื่อเร็ว ๆ นี้เมื่อฉันติดตั้งกล่อง Vagrant 6-7 กล่อง (ซึ่งใช้การตั้งค่า SSH คีย์ / รหัสประจำตัวสำหรับการเข้าถึง) บนเครื่องที่อยู่ด้านบนของid_rsa.pub
สถานที่ทั่วไป
เรื่องสั้นสั้นฉันถูกล็อคออกจากเซิร์ฟเวอร์ระยะไกลเนื่องจากความพยายามที่ล้มเหลวมากเกินไปตามคีย์ / รหัสประจำตัว SSH เนื่องจากการเข้าถึงเซิร์ฟเวอร์นั้นใช้รหัสผ่านและคีย์ / ตัวตน SSH เป็นกุญแจ / ตัวตน SSH ดังนั้นตัวแทน SSH จึงลองใช้คีย์ SSH ทั้งหมดของฉันล้มเหลวและฉันไม่สามารถขอรหัสผ่านได้
ปัญหาคือการที่ssh-add -A
จะเพิ่มคีย์ / รหัสประจำตัว SSH เดียวทุกครั้งที่คุณมีให้กับเอเจนต์แม้ว่าจะไม่จำเป็นต้องทำเช่นนั้น เช่นในกรณีของกล่อง Vagrant
วิธีการแก้ปัญหาของฉันหลังจากการทดสอบมากมีดังนี้
ก่อนอื่นถ้าคุณมีคีย์ / รหัส SSH เพิ่มเติมในเอเจนต์ของคุณมากกว่าที่คุณต้องการ - ดังที่แสดงssh-add -l
แล้วให้ล้างทั้งหมดจากเอเจนต์ดังนี้:
ssh-add -D
เมื่อเสร็จแล้วให้เริ่มต้นเอเจนต์ SSH เป็นกระบวนการพื้นหลังดังนี้:
eval "$(ssh-agent -s)"
ตอนนี้มันแปลกและฉันก็ไม่แน่ใจเหมือนกันว่าทำไม ในบางกรณีคุณสามารถเพิ่ม~/.ssh/id_rsa.pub
คีย์ / ข้อมูลเฉพาะตัวลงในเอเจนต์ได้ดังนี้:
ssh-add ~/.ssh/id_rsa.pub
พิมพ์ข้อความรหัสผ่านของคุณกดปุ่มReturnและคุณควรจะไป
แต่ในกรณีอื่น ๆ เพียงแค่เรียกใช้สิ่งนี้ก็เพียงพอที่จะเพิ่มคีย์ / ข้อมูลประจำตัว:
ssh-add -K
หากใช้งานได้ดีแล้วให้พิมพ์ssh-add -l
และคุณจะเห็นรหัส / ข้อมูลประจำตัวของ SSH เดียวอยู่ในรายการ
ทั้งหมดดี? ตอนนี้เปิดของคุณ.bash_profile
:
nano ~/.bash_profile
และเพิ่มบรรทัดนี้ไปที่ด้านล่าง; แสดงความคิดเห็นหรือลบ-A
เวอร์ชันหากคุณมี:
ssh-add -K 2>/dev/null;
ซึ่งจะอนุญาตให้คีย์ / รหัสประจำตัว SSH ได้รับการโหลดซ้ำไปยังเอเจนต์ SSH ในการเริ่มต้น / รีบูตแต่ละครั้ง
UPDATE: ขณะนี้ Apple ได้เพิ่มUseKeychain
ตัวเลือกในตัวเลือกการกำหนดค่า SSH แบบเปิดและพิจารณาssh-add -A
วิธีการแก้ปัญหาเช่นกัน
ในฐานะของ macOS Sierra 10.12.2, Apple (ฉันถือว่า) ได้เพิ่มUseKeychain
ตัวเลือกการกำหนดค่าสำหรับการกำหนดค่า SSH ตรวจสอบหน้าคน (ผ่านman ssh_config
) แสดงข้อมูลต่อไปนี้:
UseKeychain
On macOS, specifies whether the system should search for
passphrases in the user's keychain when attempting to use a par-
ticular key. When the passphrase is provided by the user, this
option also specifies whether the passphrase should be stored
into the keychain once it has been verified to be correct. The
argument must be ``yes'' or ``no''. The default is ``no''.
ซึ่งเดือดลงไปแอปเปิ้ลได้เห็นการแก้ปัญหาเป็นทั้งการเพิ่มssh-add -A
ที่คุณ.bash_profile
ตามที่อธิบายไว้ในตั๋วเรดาร์นี้เปิดหรือเพิ่มเป็นหนึ่งในตัวเลือกในต่อผู้ใช้UseKeychain
~/.ssh/config