SVN + SSH ไม่ต้องทำ ssh-add ทุกครั้ง? (Mac OS)


105

ฉันรู้ว่ามีคำตอบอยู่แล้ว แต่ฉันก็เป็นคนโง่ Unix และอาจจะไม่รู้จักวิธีแก้ปัญหาถ้ามันโดนฉันที่หน้า

ฉันใช้ Mac เชื่อมต่อกับเซิร์ฟเวอร์ SVN ผ่าน SSH tunneling ฉันต้องssh-add privateKey.txtทุกครั้งที่ต้องการเชื่อมต่อกับเซิร์ฟเวอร์ SVN (ทั้ง Cornerstone และ Xcode กำลังเชื่อมต่อกับ SVN)

มีวิธี "บันทึก" คีย์ไว้ที่ไหนสักแห่งเพื่อที่ฉันจะได้ไม่ต้องทำเช่นนี้ทุกครั้ง? เพิ่มลงในพวงกุญแจของฉันไหม ไฟล์ config บางไฟล์? เริ่มสคริปต์?

คำตอบ:


172

ขั้นแรกย้ายไฟล์คีย์ส่วนตัวของคุณไปที่~/.ssh. สิ่งนี้ไม่จำเป็นอย่างยิ่ง แต่เป็นสถานที่มาตรฐานสำหรับสิ่งเหล่านี้

ssh-add -K ~/.ssh/privateKey.txtจากนั้นเรียก มันจะถามรหัสผ่านของคุณถ้าจำเป็นจากนั้นเพิ่มลงในพวงกุญแจของคุณ

หลังจากนั้นคุณไม่ควรต้องทำอะไรอีก คำอธิบายอีกเล็กน้อยสามารถใช้ได้ที่นี่


17
ฉันคิดว่ามันคุ้มค่าที่จะสังเกตอย่างชัดเจนว่านี่เป็นสิ่งที่ Mac ไม่ใช่สิ่งที่เป็น Unix สากล บน Ubuntu ssh-addไม่สามารถ-Kโต้แย้งได้
Mark Amery

2
ฉันต้องการทราบว่าแม้ว่าบทความที่เชื่อมโยงไว้สำหรับ Leopard แต่ก็ยังใช้งานได้ใน OS X Mavericks
Josh Brown

1
อาจมีบางคนมีคำสั่งเทียบเท่าสำหรับสภาพแวดล้อมอื่น ๆ ? ssh-add ของ mysysgit ไม่ยอมรับอาร์กิวเมนต์ -K เช่นกัน
Blake

5
ด้วยเหตุผลบางอย่างเมื่อฉันทำ -KI ยังคงมีปัญหาหลังจากรีสตาร์ท
Mat Teague

7
คุณใช้ macOS Sierra หรือไม่ พฤติกรรมเปลี่ยนไปและตอนนี้คุณต้องเพิ่มคีย์ของคุณให้กับ ssh-agent อย่างชัดเจนเมื่อเข้าสู่ระบบ: github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
Nicholas Riley

49

การจัดเก็บข้อความรหัสผ่านในพวงกุญแจ

ในการจัดเก็บข้อความรหัสผ่านสำหรับคีย์เริ่มต้นของคุณในพวงกุญแจให้เปิด Terminal และเรียกใช้:

ssh-add -K

และเพื่อจัดเก็บข้อความรหัสผ่านสำหรับการเรียกใช้คีย์อื่น:

ssh-add -K /path/to/private/key/file

เมื่อได้รับแจ้งให้ป้อนข้อความรหัสผ่านของคุณและนั่นคือมัน

คุณไม่จำเป็นต้องเรียกใช้ ssh-add หรือป้อนข้อความรหัสผ่านของคุณอีก

คำตอบที่นำมาจากเว็บไซต์นี้: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


20

หลังจากสำรวจหลายครั้งฉันคิดว่าฉันพบคำตอบสำหรับปัญหานี้อย่างสมบูรณ์แล้ว ssh-add -K ~/.ssh/your_key_hereก่อนให้แน่ใจว่าคุณทำ สิ่งนี้จะเพิ่มคีย์ให้กับพวงกุญแจของคุณ บางสถานที่ฉันอ่านว่าเพียงพอ แต่ฉันไม่แน่ใจ นอกจากนี้ยังเป็นสูตรเฉพาะสำหรับ Mac ดังนั้นหากคุณต้องการทำสิ่งนี้กับรสชาติอื่น ๆ คุณจะไม่มีตัวเลือกนี้

เพื่อการวัดที่ดีฉันแก้ไข~/.ssh/configไฟล์ (คุณอาจต้องสร้างขึ้น) เพื่อชี้ไปที่คีย์ทั้งหมดที่ฉันมี เหมืองมีดังต่อไปนี้:

IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa 
IdentityFile ~/.ssh/my_other_identity_here
IdentityFile ~/.ssh/yet_another_identity_here

ตามหน้าคนสำหรับ ssh_config มันจะลองสิ่งเหล่านี้ตามลำดับ ฉันไม่แน่ใจว่าค่าเริ่มต้นสามรายการแรกที่ฉันระบุไว้นั้นจำเป็นต้องมีหรือไม่ แต่ฉันได้รวมไว้แล้ว


ไม่มี-Kแฟssh-add
ล็ก

2
มีเป็น-Kธงบน OS X ssh-addสำหรับ นอกจากนี้ควรเป็นคำตอบที่เลือก
kaiser

1
ตรวจสอบให้แน่ใจว่าคุณใช้/usr/bin/ssh-addhomebrew ที่ให้มา/usr/local/bin/ssh-addไม่มีตัวเลือก -K
Remco Wendt

2
เมื่อ~/.ssh/configมีแล้วไม่จำเป็นต้องเรียกใช้ssh-addคำสั่งทุกครั้งหลังจากรีบูตเครื่อง
hailong

7

ตั้งแต่ macOS 10.12.2 คุณสามารถใช้UseKeychainตัวเลือก อ่านเพิ่มเติมได้ที่นี่man ssh_configหรือมองเข้าไปใน

     UseKeychain
         On macOS, specifies whether the system should search for passphrases in the user's keychain
         when attempting to use a particular 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''.

ให้ทำดังต่อไปนี้:

echo "UseKeychain yes" >> ~/.ssh/config


3
นี้ต้องขึ้นไป สำคัญมาก !
quarezz

2

ฉันไม่มีประสบการณ์กับ Mac มากนักจึงไม่แน่ใจว่าเวอร์ชันนี้เหมาะกับคุณหรือไม่ แต่ลองดูที่http://www.phil.uu.nl/~xges/ssh/

หากแอปนี้โดยเฉพาะไม่ได้ทำงานนั่นคือสิ่งที่คุณกำลังมองหานะ ssh agent- ในกล่องแบบยูนิกซ์คุณต้องการเริ่มตัวจัดการหน้าต่างทั้งหมดด้วยวิธีนั้นเพื่อรับเอฟเฟกต์ระดับโลก แต่อาจเป็นไปไม่ได้ใน osx

ข้อมูลเพิ่มเติมบางส่วน: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


1

sshkeychainเป็นความเป็นไปได้อย่างหนึ่ง ติดตั้งได้ดีกับ macports โดยใช้:

sudo port install sshkeychain

มันใช้พวงกุญแจในการจัดเก็บรหัสผ่านและคุณสามารถเปิดใช้งานได้เมื่อเริ่มเซสชันการเข้าสู่ระบบของคุณ (โดยใช้เมื่อเปิดครั้งแรกโดยคลิกขวาตามปกติในไอคอนท่าเรือ + "เปิดเมื่อเริ่มต้น")

โปรดทราบว่า svn ของ Apple ใช้พวงกุญแจในการจัดเก็บรหัสผ่าน แต่ไม่จำเป็นต้องเป็นไบนารี svn ที่คุณสร้างด้วย macports


0

เพิ่มคีย์ของคุณลงในพวงกุญแจโดยเรียกใช้:

ssh-add -K ~/.ssh/id_rsa

และแก้ไขไฟล์ ssh config ( ~/.ssh/config) ของคุณเพื่อโหลดคีย์โดยอัตโนมัติจากพวงกุญแจไปยัง ssh-agent ( AddKeysToAgent yesตัวเลือก) และจัดเก็บรหัสผ่านในพวงกุญแจ ( UseKeychain yesตัวเลือก):

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