.ssh / config:“ ตัวเลือกการกำหนดค่าไม่ถูกต้อง: UseKeychain” บน Mac OS Sierra 10.12.6


94

ฉันพยายามตั้งค่า ssh config บน Mac (Mac OS Sierra 10.12.6) ในลักษณะที่เก็บข้อความรหัสผ่านสำหรับคีย์ ssh ของฉันในพวงกุญแจ ก่อนหน้านี้ฉันสามารถทำได้ด้วย

ssh-add -K ~/.ssh/id_rsa

แต่เมื่อเร็ว ๆ นี้ดูเหมือนจะไม่ได้ผลอีกต่อไป หลังจากบทความนี้ดูเหมือนว่าจะมีการเปลี่ยนแปลงพฤติกรรมของการกำหนดค่า ssh ใน Mac OS> 10.12.2 และวิธีที่แนะนำในการแก้ไขปัญหานี้คือการเพิ่มUseKeychain yesในการกำหนดค่า ssh ของคุณ นี่คือ.ssh/configส่วนของฉันHost *:

Host *
  Port 22
  ServerAliveInterval 60
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa
  AddKeysToAgent yes
  UseKeychain yes

เมื่อพยายาม ssh ไปยังโฮสต์ต่างประเทศฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

$ ssh my-host
/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain

มีความคิดเห็นว่าทำไมสิ่งนี้จึงเกิดขึ้นและฉันจะแก้ไขได้อย่างไร ขอบคุณ!

คำตอบ:


176

ลองระบุตัวเลือกอื่นIgnoreUnknownเช่นด้านล่าง:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่

หากคุณมีIgnoreUnknownค่าอยู่แล้วให้ใช้ค่าที่คั่นด้วยลูกน้ำ

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
ข้ามไฟล์ config ผ่านssh -F /dev/null ...ชั่วคราวมันใช้ได้สำหรับฉัน
Itachi

1
การเพิ่มIgnoreUnknown UseKeychainยังไม่ได้ผลสำหรับฉันดังนั้นฉันจึงลบUseKeychain yesทั้งหมดและมันก็ใช้ได้ ไม่แน่ใจว่านี่เป็นแนวทางที่ดีที่สุด
Hank Chan

วิธีนี้ใช้ได้ผลสำหรับฉัน แต่ฉันไม่เข้าใจว่าทำไมการเปลี่ยนแปลงนี้ในทันที? ฉันกำลังลงชื่อเข้าใช้บัญชี DigitalOcean ของฉันเท่านั้น
anjanesh

ฉันลบตัวเลือกทั้งหมดและออกจากโฮสต์และ IdentityFile Github บอกว่าจะใช้ตัวเลือกเหล่านั้น แต่ก็ไม่ได้ผลสำหรับฉันเช่นกัน ขอบคุณ.
Natus Drew

54

คำตอบที่ยอมรับนั้นช่วยฉันได้ แต่ไม่สามารถแก้ปัญหาได้อย่างสมบูรณ์เพราะฉันมีหลายทางเลือกที่ไม่ดี นี่คือตัวอย่างของลักษณะที่อาจเกิดขึ้นหากคุณมีปัญหานี้:

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

แค่อยากจะทิ้งไว้ที่นี่: ฉันมีปัญหาในการเชื่อมต่อจากระยะไกลเช่นกันและสิ่งนี้กลายเป็นปัญหา ปัญหานี้สร้างขึ้นโดยใช้เครื่องมือ Sourcetree ของ Bitbucket ซึ่งฉันได้ถอนการติดตั้ง แต่เหลือเศษที่ป้องกันการเชื่อมต่อระยะไกล
Connor

ขอบคุณ! ทำงานบน MacOS mojave 10.14.6
brendan

ทำไมถึงได้ผล? ฉันมีปัญหาเดียวกันและคำตอบนี้ได้รับการแก้ไข แต่ฉันยังไม่รู้ว่าทำไมถึงได้ผลหรือทำไมฉันถึงมีปัญหาตั้งแต่แรก ..
Nishant Mehta


1

แทนที่จะเป็นประเภท ssh-add 'open .ssh / id_rsa' และเพิ่มลงในพวงกุญแจ

ตัวเลือก UseKeychain ไม่เคยปรากฏใน config ของฉัน แต่ฉันมีในตอนแรกก่อนโฮสต์อื่น ๆ ดังต่อไปนี้

Host *
UseKeychain yes 

Host (...)

FYI ฉันคิดว่านั่นเป็นคำสั่งที่ผิด ถ้าคุณเขียนแบบนั้น*กฎของคุณจะถูกละเว้น man ssh_configกล่าวว่า "เนื่องจากมีการใช้ค่าแรกที่ได้รับสำหรับแต่ละพารามิเตอร์จึงควรให้การประกาศเฉพาะโฮสต์เพิ่มเติมใกล้กับจุดเริ่มต้นของไฟล์และค่าเริ่มต้นทั่วไปในตอนท้าย"
Telemachus

FYI ฉันเป็นแบบนั้นมาเกือบทศวรรษกับเซิร์ฟเวอร์หลายสิบเครื่องและไม่เคยมีปัญหา ฉันใช้เซิร์ฟเวอร์จำนวนมากทุกวัน อย่างไรก็ตามหากใครพบปัญหาในชีวิตจริงกับการกำหนดค่านั้นอาจจะเป็นเช่นนั้น
ริคาร์โดเมนเดส

0

เป็นตัวพิมพ์ใหญ่ -K ลองตัวพิมพ์เล็ก -k !!

ssh-add -k ~/.ssh/id_rsa

Enter passphrase for /Users/tom/.ssh/id_rsa:
Identity added: /Users/tom/.ssh/id_rsa (/Users/tom/.ssh/id_rsa)

ssh-addมี-Kตัวเลือกอย่างน้อยใน macOS man ssh-add:-K When adding identities, each passphrase will also be stored in the user's keychain. When removing identities with -d, each passphrase will be removed from it.
uasi

0

ฉันมีปัญหาเดียวกันและฉันรู้ว่าเมื่อเริ่มสร้างคีย์โดยทำตามคำแนะนำ ขั้นตอนแรกคือสิ่งนี้

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

ฉันไม่ได้เปลี่ยนที่อยู่อีเมล แต่แน่นอนว่าฉันลืมทำไปแล้ว: D. ดังนั้นอย่าลืมขั้นตอนนั้นแล้วทุกอย่างจะดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.