ssh ไม่ได้ใช้ ~ / .ssh / config อีกต่อไป


20

ฉันไม่สามารถทำอะไรได้เลย หลังจากขุดเล็กน้อยฉันพบว่ามันไม่ได้อ่าน ssh config จากไดเรกทอรีบ้านของฉัน

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)

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

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)

มันทำงานก่อนหน้านี้และฉันไม่ได้ตระหนักถึงสิ่งที่ฉันสามารถทำได้เพื่อทำให้เกิดปัญหานี้ สิ่งนี้จะเกิดขึ้นได้อย่างไรและจะแก้ไขได้อย่างไร

ในลิงค์เอกสารชี้โดย tike ระบุว่า

เนื่องจากมีโอกาสในการถูกละเมิดไฟล์นี้จะต้องมีสิทธิ์ที่เข้มงวด: อ่าน / เขียนสำหรับผู้ใช้และไม่สามารถเข้าถึงได้โดยผู้อื่น

สิทธิ์ของฉันคือ:

$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba  1029   1428 Jul  1 16:33 ..
-rwx------   1 kuba  1029   1528 May 15 13:07 config
(...)

ฉันคิดว่าปัญหาอาจเกิดจากความสับสนเกี่ยวกับโฮมไดเร็กตอรี่ เมื่อฉันบังคับให้ไฟล์ปรับตั้งในเครื่องมันเริ่มทำงานและจากนั้นก็เริ่มอ่านจาก/nas/kuba

$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
                      ^^^^^^^^^^

แต่ดูเหมือนว่าบ้านของฉันจะไม่เป็นไร

$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba

4
ฉันสามารถแก้ไขปัญหาได้ ฉันคัดลอกเนื้อหาของ ~ / .ssh ไปที่ /nas/kuba/.ssh ดังนั้นจริงๆแล้วมันมีปัญหากับ ssh ทันทีที่ใช้ไดเรกทอรีบ้านที่ไม่ถูกต้องซึ่งอาจไม่ใช่ปัญหา ssh
Kuba

ความคิดเห็นสุดท้ายนั้นจะเป็นข้อมูลที่มีประโยชน์มากในการแก้ไขคำถาม
David Z

เอาต์พุตของคุณระบุว่าคุณกำลังใช้ DSA ฉันจะหาวิธีเปลี่ยนเป็น RSA ได้เพราะเป็นรุ่นที่ใหม่ที่สุดและฉันเชื่อว่า DSA ใช้งานไม่ได้
trysis

3
@Kuba เท่าที่ฉันสามารถบอกได้ว่าsshไม่สนใจHOMEตัวแปรสภาพแวดล้อม เป็นการปฏิบัติที่ไม่ดีที่จะเพิกเฉยHOMEดูเหมือนว่าเป็นสิ่งที่sshทำ ถ้ามันไม่ได้ใช้เป็นทางเลือกเดียวที่ฉันรู้คือการมองว่ามันขึ้นมาจากHOME uidหากคุณมีสองรายการที่/etc/passwdเหมือนกันuidทั้งคู่จะจบลงด้วยการใช้.ssh/configไฟล์เดียวกันแม้ว่าพวกเขาจะมีโฮมที่แตกต่างกัน
kasperd

1
@kasperd นั่นควรเป็นคำตอบ มันเป็นเส้นทางเดียวในหน้านี้ที่ช่วยฉันด้วย ขอบคุณ!
Wildcard

คำตอบ:


14

ดูเหมือนว่าคุณจะติดอยู่ระหว่างผู้ใช้เฉพาะเทียบกับส่วนกลาง ssh_config

โปรดตรวจสอบการตั้งค่าการอนุญาตของไฟล์กำหนดค่าของผู้ใช้ ( ~/.ssh/config) และไฟล์กำหนดค่าทั้งระบบ ( /etc/ssh/ssh_config) เพื่อทำความเข้าใจในรายละเอียดเพิ่มเติม

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่ จริง ๆ แล้วไฟล์ทั้งหมดภายใต้.sshไดเรกทอรีผู้ใช้ของคุณควรเป็น 600 และconfigไฟล์ควรอยู่ที่ 644 คุณสามารถตั้งค่านี้ด้วยคำสั่งต่อไปนี้ในไดเรกทอรีบ้านของคุณ:

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config

ดังนั้นฉันเข้าใจจากเอกสารว่าควรอ่าน config จากโฮมไดเร็กตอรี่ของฉันก่อนและภายหลังจาก global (/ etc / ssh / ssh_config) คำถามคือ - ทำไมมันถึงกำหนดค่า local ของฉัน?
Kuba

อัปเดตคำตอบข้างต้น
tike

ฉันเหนื่อย. ไม่มีอะไรเปลี่ยนแปลง ฉันอัพเดทคำถามด้วยรายละเอียดเพิ่มเติม
Kuba

หากคุณไม่ได้เปลี่ยนคำถามข้างต้นอย่างมากในขณะที่แก้ไข: debug1: /Users/kuba/.ssh/config บรรทัดที่ 1: การใช้ตัวเลือกสำหรับ * debug1: /Users/kuba/.ssh/config บรรทัดที่ 39: การใช้ตัวเลือกสำหรับไบโอมันอ่านการกำหนดค่า และสัญลักษณ์การกำหนดค่าของคุณดูเหมือนจะมีบทบาท ฉันจะเก็บไฟล์กำหนดค่าอย่างง่ายเพื่อทดสอบก่อนด้วยพอร์ตที่กำหนดและเซิร์ฟเวอร์ปลายทาง
tike

ที่จริงฉันเปลี่ยนคำถามอย่างมากจนถึงจุดที่ฉันควรจะปิดมัน ดูเหมือนว่า ssh กำลังปฏิบัติต่อไดเรกทอรีอื่นเป็นโฟลเดอร์บ้านของฉัน สิ่งที่ไม่ใช่ ~, หรือ $ HOME
Kuba

3

ตรวจสอบสิทธิ์

ls -lsd ~/.ssh

และ

ls -ls ~/.ssh/*

หากการอนุญาตไม่ดีลูกค้า ssh จะไม่พยายามอ่าน


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config ดูเหมือนว่าฉันเป็นเจ้าของพวกเขาทั้งหมด
Kuba

@Kuba ลองกับ ls -la ~ / .ssh /
c4f4t0r

ls -la ~ / .ssh รวม 80 drwx ------ 9 kuba 1029 306 ก.ค. 1 16:33 drwx ------ + 42 kuba 1029 1428 ก.ค. 1 16:33 .. -rw-r - r-- 1 kuba 1029 406 7 พฤษภาคม 14:53 authorized_keys -rwx ------ 1 kuba 1029 1528 15 พฤษภาคม 13:07 config -rwx ------ 1 kuba 1029 1675 7 พฤษภาคม 14:53 id_rsa -rwx ------ 1 kuba 1029 406 7 พฤษภาคม 14:53 id_rsa.pub -rw-r-- r-- 1 kuba 1029 16049 22 พฤษภาคม 09:36 known_hosts
Kuba

@ แน่ใจหรือไม่ว่าคุณเป็นผู้ใช้ตามบ้านไม่ต้องเปิด?
c4f4t0r

2
นั่น + ตรงนั้น ... นั่นไม่ใช่ ACLs เหรอ? นั่นอาจเป็นสาเหตุของความผิด
Jorge Suárez de Lis

0

ฉันมีปัญหาเดียวกันและฉันก็สามารถที่จะแก้ไขได้โดยการตั้งค่า + x ธงบนของ~/.sshdir (0700) ~/.ssh/configในขณะที่ยังมีการตั้งค่าใน


0

สำหรับสิ่งที่คุ้มค่าฉันมีปัญหาเดียวกันและแก้ไขโดยทำให้ ssh สร้าง.sshโฟลเดอร์อีกครั้ง(เพียงแค่เปลี่ยนชื่อsshและดำเนินการคำสั่ง ssh) และคัดลอกไฟล์ที่จำเป็นหลังจากนั้นด้วยสิทธิ์ที่เหมาะสม (กำหนดค่าด้วย 600)

ดูเหมือนว่า ssh จะสงสัยถ้า.sshมีการแก้ไขโฟลเดอร์ในแบบที่ไม่เห็นด้วย ...


0

SSH จะไม่อ่านการกำหนดค่าในตัวเครื่องหากอยู่ในระบบไฟล์ที่ติดตั้ง NFS นี่คือการตรวจสอบที่คุ้มค่าเพราะสิทธิ์ทั้งหมดสามารถใช้ได้และ SSH (อย่างน้อยเวอร์ชัน 6.6) จะไม่แสดงให้คุณเห็นว่าทำไมถึงไม่อ่านการกำหนดค่าผู้ใช้ (อย่างไรก็ตามจะอ่านจากโวลุ่ม NFS หากคุณใช้-Fตัวเลือก)


0

ฉันพบปัญหาเดียวกันใน MacOs จากการดูข้อมูลการแก้ปัญหาของการเข้าสู่ระบบด้วยตนเอง (ssh @) ฉันพบว่าเห็นได้ชัดว่า ssh คิดว่าไดเรกทอรีบ้านของฉันเป็น/srv/home/<userid>และกำลังมองหา.sshไดเรกทอรีอยู่ในนั้นและไม่สนใจไดเรกทอรีใน/Users/<userid>/.ssh/

อาจเป็นเรื่องเกี่ยวกับการตั้งค่าเครื่อง Mac ด้วยวิธีเฉพาะ แต่ฉันขอแนะนำให้ตรวจสอบsshและระบบปฏิบัติการจะตกลงกันว่าโฮมไดเร็กตอรี่อยู่ที่ใด)


0

ตามที่ 'kasperd' ระบุไว้ในความคิดเห็นของเขาในคำถามโปรดทราบว่าsshไม่จำเป็นต้องค้นหา '$ {HOME} /. ssh / config' ตามที่ค้นพบมันเป็นสิ่งสำคัญที่จะต้องขุดให้ลึกลงไปและเรียนรู้ว่าโฮมไดเร็กตอรี่นั้นอยู่ที่ไหนในเวลาที่เข้าสู่ระบบและก่อนที่จะมีการยืนยัน HOME ใหม่

คำแนะนำในการตรวจสอบผลลัพธ์ที่ssh -xvvvF ~/.ssh/config serverได้นั้นลึกซึ้งมากในการช่วยตอบคำถามเดียวกันนี้ เมื่อค้นหาตัวเองในระบบที่ชื่อผู้ใช้สองชื่อที่แตกต่างกันมี UID เดียวกันในไฟล์ '/ etc / passwd' ปัญหานี้ก็เกิดขึ้น ผู้ใช้สองคนมีไดเรกทอรี HOME ที่แตกต่างกันใน '/ etc / passwd'

ในสถานการณ์ดังกล่าวปรากฎว่าหากมีการเข้าสู่ระบบในฐานะผู้ใช้ที่สองที่มี UID ซ้ำกันในไฟล์ '/ etc / passwd' ให้sshใช้ไดเรกทอรีบ้านของผู้ใช้รายแรกที่มีการจับคู่ UID ของผู้ใช้ที่ทำงาน SSH คำสั่ง

จริงอยู่ที่กรณีการใช้งานนี้ค่อนข้างแปลกและจะไม่ช่วยชาวบ้านส่วนใหญ่ แต่มันเกิดขึ้นจริงและ Q / A นี้ช่วยแก้ไขปัญหาได้


0

นี่เกิดจากการตั้งค่าการอนุญาตของไฟล์

ตรวจสอบ.sshสิทธิ์ dir และไฟล์ของคุณรวมทั้งตรวจสอบการตั้งค่าการอนุญาต dir ที่บ้านของคุณ

สำหรับฉันฉันไม่ต้องการให้คนอื่นเห็นไฟล์ส่วนบุคคลของฉันดังนั้นฉันจึงลบการxอนุญาตจากบ้านของฉัน ซึ่งนำไปสู่ ​​ssh เพื่อค้นหาคีย์ที่ได้รับอนุญาตไปยังเส้นทางที่ไม่ถูกต้อง

วิธีหนึ่งในการแก้ไขปัญหานี้คือการตั้งค่าพา ธ สิทธิ์อื่นใน/etc/ssh/sshd_config:

AuthorizedKeysFile .ssh / authorized_keys / etc / ssh / authorized_keys

จากนั้นก็คัดลอกผับของคุณไป/etc/ssh/authorized_keysทำงานให้ฉัน

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