ข้ามการตรวจสอบสิทธิ์ไฟล์คีย์ ssh


29

ฉันมีปริมาณ FAT ที่เข้ารหัส (เพื่อความเข้ากันได้) ที่มีไฟล์คีย์ส่วนตัวและข้อมูลที่สำคัญอื่น ๆ

ฉันต้องการเชื่อมต่อกับเซิร์ฟเวอร์ของฉันผ่าน SSH โดยใช้คีย์ส่วนตัวของฉัน แต่แน่นอนว่า FAT ไม่รองรับการอนุญาตไฟล์มันจะเพิกเฉยต่อกุญแจของฉันเนื่องจากการอนุญาตเปิดไว้

ดังนั้นในปัจจุบันฉันกำลังคัดลอกมันไว้ที่อื่นในฮาร์ดไดรฟ์ของฉันที่มีสิทธิ์ 0600 ใช้มันแล้วลบมันอย่างปลอดภัย แต่มันก็เจ็บปวด

มีวิธีเลี่ยงผ่านการตรวจสอบสิทธิ์ในบรรทัดคำสั่ง ssh / scp นี้หรือไม่?

แก้ไข : ความแม่นยำ: เป็นปริมาณ TrueCrypt ใน OS X

ในการแก้ปัญหา:คำตอบที่ได้รับการยอมรับด้านล่างแก้ปัญหาของฉัน (ใช้ไฟล์คีย์ SSH ที่อยู่ในปริมาณ TrueCrypt กับ Mac OS X) แต่มันก็เป็นวิธีแก้ปัญหา ดูเหมือนว่าไม่มีวิธี "การข้ามการตรวจสอบการอนุญาตไฟล์คีย์"

คำตอบ:


18

AFAIK ไม่มีวิธีเลี่ยงการตรวจสอบสิทธิ์ไฟล์คีย์ด้วย ssh หรือ ssh-add (และคุณไม่สามารถหลอกมันด้วยไพพ์ที่มีชื่อหรือเช่นนั้น) นอกจากนี้คุณไม่ต้องการหลอกลวง ssh แต่เพียงเพื่อให้สามารถใช้ไฟล์คีย์ของคุณ

ที่จริงแล้วปริมาณ TrueCrypt นั้นควรรักษาข้อมูลของคุณไว้เป็นความลับดังนั้นการติดตั้งไดรฟ์ให้เป็นที่อ่านได้ทั่วโลก (พฤติกรรมเริ่มต้นของ TrueCrypt) นั้นไม่เหมาะสมจริง ๆ หากคุณใช้วอลลุ่มที่ฟอร์แมตด้วย FAT คุณควรปรับตัวเลือกการเมาท์ตามที่ Dan Carley แนะนำ

แม้ว่าตัวเลือกการเมานท์ยังไม่ได้รับการสนับสนุนอย่างถูกต้องโดย TrueCrypt สำหรับ OS X (แม้ว่าคุณจะเรียกใช้ TC โดยใช้อินเตอร์เฟสบรรทัดคำสั่งและตัวเลือกการเมานท์จากหน้าคน - ลองไปแล้ว) OS X รองรับค่าเริ่มต้นของตัวเลือกการเมานท์ .

คุณจำเป็นต้องรู้รหัสผู้ใช้ของคุณ (ปกติคือ 501 ถ้าคุณเป็นผู้ใช้คนแรก / คนเดียวของคอมพิวเตอร์) คุณสามารถรับได้ด้วย "id -u"

สมมติว่าคุณเป็นชื่อไดรฟ์ข้อมูล "PRIVATE" (ชื่อไดรฟ์ที่อยู่ในเมืองหลวง) และ uid ของคุณคือ 501 สิ่งที่คุณต้องทำคือการเพิ่มบรรทัดนี้ใน / etc / fstab:

LABEL=PRIVATE none msdos -u=501,-m=700

คุณต้องรูทเพื่อสร้าง / แก้ไขไฟล์นี้ (ไม่มีอยู่ในการติดตั้ง OSX เริ่มต้น):

sudo vim /etc/fstab

ครั้งต่อไปที่คุณเมานต์โวลุ่มจะมีการอนุญาต 700 และรหัสเจ้าของ 501

สิ่งนี้ยังทำงานได้กับไดรฟ์ USB (ซึ่งมักจะฟอร์แมตใน FAT ด้วย)


ทำงานได้อย่างสมบูรณ์แบบ
อินสแตนซ์ของฉัน

ฉันไม่สามารถรับวอลลุ่มที่ฟอร์แมตด้วย FAT เพื่อรับสิทธิ์ที่ถูกต้องด้วยวิธีนี้ อย่างไรก็ตามการเลือก "Mac OS Extended" และการเลือกตัวเลือกเพื่อเชื่อมต่อกับระบบปฏิบัติการอื่นทำให้ฉันสามารถตั้งค่าการอนุญาตด้วย chmod ได้
emptyset

มันใช้งานได้อย่างยอดเยี่ยม เมื่อฉันเมานต์ไดรฟ์ข้อมูลที่ปลอดภัยฉันเมานต์ไปยังจุดเฉพาะในไดเรกทอรีบ้านของฉัน ฉันพบว่าฉันต้องแทนที่ค่าของ 'none' ด้วยชื่อที่ชัดเจนของจุดเชื่อมต่อ
Alec the Geek

1
ใช้งานได้แม้ไม่มี/etc/fstabไฟล์บน OS X รุ่นใหม่เพียงสร้างetc/fstabไฟล์ใหม่ตามข้างต้น
iggie

33

การเพิ่มคีย์จาก stdin ทำงานสำหรับฉัน:

cat /path/to/id_rsa | ssh-add -k -

1
ทำไมถึงไม่มีหนึ่ง upvote มันทำงานนอกกรอบโดยไม่ต้องติดตั้งและคุณกำลังใช้ ssh-agent อยู่ดีใช่ไหม
pscheit

4
ทำงานเหมือนจับใจ - ควรคำตอบที่ยอมรับ
hdave

1
นี่ทำให้ฉันเข้าใช้ WSL Ubuntu ขอบคุณ!
mydoglixu

7

ในฐานะที่เป็นวิธีแก้ปัญหาที่บ้าคุณสามารถสร้างดิสก์อิมเมจของโวลุ่ม ext2 ที่มีคีย์ส่วนตัวของคุณและติดตั้งเป็นอุปกรณ์ลูปจากนั้นใช้คีย์ ssh ของคุณจากที่นั่น

ทำไฟล์ว่าง 1MB:

dd if=/dev/zero of=diskimg bs=1024 count=1024

จัดรูปแบบเป็น ext2 (กด Y เมื่อมันบอกว่ามันไม่ใช่อุปกรณ์):

mke2fs diskimg

ติดตั้งที่ใดที่หนึ่ง (เหมือนรูท):

mount -t ext2 -o loop diskimg /my/path/to/diskimg

ตอนนี้คุณมีระบบไฟล์ ext2 ขนาดเล็กที่คุณสามารถตั้งค่าการอนุญาตได้ คุณสามารถเขียนสคริปต์เพื่อติดตั้งและตรวจสอบให้แน่ใจว่าสิทธิ์เหล่านั้นมี UID / GID ที่ถูกต้องตามระบบที่คุณใช้งานอยู่ (เนื่องจาก UID อาจไม่ตรงกัน) นอกจากนี้ยังต้องมีการเข้าถึง sudo / root เพื่อทำงาน


ดูเหมือนว่าจะไม่มีตัวเลือกที่ง่ายกว่านี้
เช่นฉัน

1
ว่าเป็นสิ่งที่ผิดเพื่อให้ - แต่เย็นมาก :)
วอร์เรน

1
@warren: ฉันทำคำนำด้วย 'บ้า' :-D
Kyle Smith

2

สิ่งที่เกี่ยวกับการเพิ่มStrictModes noของคุณ/etc/ssh/sshd_config(และโหลด / รีสตาร์ท sshd)?

แก้ไข: อุ๊ปส์ตัวเลือกนี้เป็นฝั่งเซิร์ฟเวอร์เท่านั้น: /


1

หากฉันจำได้ถูกต้องssh-agentไม่ตรวจสอบการอนุญาตที่สำคัญ ดังนั้นนี่อาจใช้งานได้:

[-S "$ SSH_AUTH_SOCK"] || eval $ (ssh-agent)
ssh-add path / to / id_rsa

FYI สิ่งนี้ใช้ไม่ได้ ssh-addตรวจสอบการอนุญาตของไฟล์
Kyle Smith

0

คุณสามารถปรับเปลี่ยนของคุณตัวเลือก mount ( umask, uidและgid) เพื่อให้เหมาะสม?


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