sshfs จะไม่ใช้ ~ / .ssh / config (บน Linux Mint 15)


10
Local:         Linux Mint 15 - Olivia
/proc/version: Linux version 3.8.0-19-generic (buildd@allspice) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) )
ssh -V:        OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
sshfs -V:      SSHFS version 2.4
               FUSE library version: 2.9.0
               fusermount version: 2.9.0
               using FUSE kernel interface version 7.18

Remote:        Ubuntu 12.04.3 LTS
/proc/version: Linux version 3.10.9-xxxx-std-ipv6-64 (kernel@kernel.ovh.net) (gcc version 4.7.2 (Debian 4.7.2-5) )
ssh -V:        OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012

ฉันกำลังพยายามตั้งค่าการเมานต์แบบไร้รหัสผ่านของเซิร์ฟเวอร์ระยะไกลโดยใช้ sshfs และฟิวส์ เซิร์ฟเวอร์ระยะไกลกำลังทำงานบนพอร์ตที่ไม่ได้มาตรฐานและฉันจะใช้คู่คีย์ ssh เพื่อตรวจสอบสิทธิ์

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

ฉันใช้การดัดแปลงแบบฝึกหัดนี้

  • กุญแจสาธารณะอยู่ในระยะไกล: authorized_keys
  • ฉันเพิ่มผู้ใช้ท้องถิ่นของฉันไปยังfuseกลุ่ม
  • ฉันได้แก้ไขโลคอลของฉัน~/.ssh/configให้มี (ต่อเซิร์ฟเวอร์):

`

Host [server_ip]
  Port = [port]
  IdentityFile  = "~/.ssh/[private_key]"
  User = "[user]"

`

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

ฉันสามารถเชื่อมต่อผ่าน ssh (รวมกับ~/.ssh/configไฟล์) โดยใช้คำสั่งssh [ip]เพื่อให้ฉันรู้ว่าไฟล์ config สามารถอ่านได้อย่างถูกต้องตามที่ฉันขอรหัสผ่านของคีย์ไม่ใช่ผู้ใช้ระยะไกล

ในการพยายามเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลฉันต้องระบุรายละเอียดการเชื่อมต่อแบบเต็มด้วยตนเองในคำสั่ง: `sshfs [user] @ [ip]: [remote_path] [local_path] -p [พอร์ต]

สิ่งที่ฉันพยายาม:

  • ssh-add / path / to / key (การเพิ่มที่สำเร็จ)
  • ระบุPreferredAuthentication = publickeyใน ~ / .ssh / config
  • sshfs -o IdentityFile = / path / to / key user @ ip: / / my / mnt / dir
  • sshfs user @ ip: / / my / mnt / dir -o IdentityFile = / path / to / key
  • temp เปลี่ยนชื่อของคีย์เป็นค่าเริ่มต้นของ id_rsa
  • sshfs -F ~ / .ssh / config

มีไฟล์คอนฟิกูเรชันแบบรีโมตหรือโลคัลที่ฉันมองเห็นหรือไม่? สวิตช์หรือตัวเลือกบางอย่างที่ฉันต้องการรวมไว้ในการเรียกไปยัง sshfs (พยายาม -F) เพื่อบังคับให้อ่านและใช้การกำหนดค่า ssh ของฉัน

ผลผลิตของ ssh -v -p [port] [user]@[remote_ip]

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 พฤษภาคม 2555
debug1: กำลังอ่านข้อมูลการกำหนดค่า /home/ [/] เหมือนกัน /.ssh/config
debug1: /home/ [/ meme /] / ssh / config บรรทัดที่ 2: การใช้ตัวเลือกสำหรับ [remote_ip]
debug1: /home/ [คลาวด์ไลน์] / 24 บรรทัดที่ 24: การใช้ตัวเลือกสำหรับ *
debug1: การอ่านข้อมูลการกำหนดค่า / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config บรรทัดที่ 19: การใช้ตัวเลือกสำหรับ *
debug1: กำลังเชื่อมต่อกับ [remote_ip] [[remote_ip]] พอร์ต [พอร์ต]
debug1: สร้างการเชื่อมต่อแล้ว
debug1: ไฟล์ข้อมูลประจำตัว /home/ [/] เหมือนกัน /.ssh/ [ส่วนตัว / คีย์] ประเภท 2
debug1: การตรวจสอบไฟล์บัญชีดำ /usr/share/ssh/blacklist.DSA-1024
debug1: การตรวจสอบไฟล์บัญชีดำ /etc/ssh/blacklist.DSA-1024
debug1: ไฟล์ข้อมูลประจำตัว /home/ [/] เหมือนกัน /.ssh/ [ส่วนตัว / คีย์ - คีย์ประเภท -1]
debug1: โปรโตคอลระยะไกลรุ่น 2.0, ซอฟต์แวร์รุ่นระยะไกล OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: การแข่งขัน: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5 *
debug1: การเปิดใช้งานโหมดความเข้ากันได้สำหรับโปรโตคอล 2.0
debug1: สตริงรุ่นท้องถิ่น SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: SSH2_MSG_KEXINIT ส่งแล้ว
debug1: ได้รับ SSH2_MSG_KEXINIT
debug1: kex: เซิร์ฟเวอร์ -> ไคลเอ็นต์ aes128-ctr hmac-md5 zlib@openssh.com
debug1: kex: client-> เซิร์ฟเวอร์ aes128-ctr hmac-md5 zlib@openssh.com
debug1: ส่ง SSH2_MSG_KEX_ECDH_INIT
debug1: ต้องการ SSH2_MSG_KEX_ECDH_REPLY
debug1: รหัสโฮสต์เซิร์ฟเวอร์: [สำคัญ]
debug1: การตรวจสอบโดยไม่มีตัวระบุพอร์ต
debug1: โฮสต์ '[remote_ip]' เป็นที่รู้จักและตรงกับคีย์โฮสต์ ECDSA
debug1: พบคีย์ใน /home/ [/] เหมือนกัน /.ssh/known_hosts:7
debug1: พบคีย์การจับคู่ที่ไม่มีพอร์ต
debug1: ssh_ecdsa_verify: ลายเซ็นถูกต้อง
debug1: SSH2_MSG_NEWKEYS ส่งแล้ว
debug1: ต้องการ SSH2_MSG_NEWKEYS
debug1: ได้รับ SSH2_MSG_NEWKEYS แล้ว
debug1: เซิร์ฟเวอร์ไม่อนุญาตการข้ามเครือข่าย
debug1: SSH2_MSG_SERVICE_REQUEST ส่งแล้ว
debug1: ได้รับ SSH2_MSG_SERVICE_ACCEPT
debug1: การรับรองความถูกต้องที่สามารถดำเนินการต่อได้: publickey, รหัสผ่าน
debug1: วิธีการตรวจสอบสิทธิ์ต่อไป: publickey
debug1: การเสนอพับลิกคีย์ DSA: /home/ [[]]
debug1: เซิร์ฟเวอร์ยอมรับรหัส: pkalg ssh-dss blen 433
debug1: เปิดใช้งานการบีบอัดที่ระดับ 6
debug1: การตรวจสอบสิทธิ์สำเร็จ (publickey)
รับรองความถูกต้องเป็น [remote_ip] ([[remote_ip]]: [พอร์ต])
debug1: channel 0: new [client-session]
debug1: กำลังขอ no-more-sessions@openssh.com
debug1: การเข้าสู่เซสชันแบบโต้ตอบ
debug1: การส่งสภาพแวดล้อม
debug1: การส่ง env LANG = en_GB.UTF-8
debug1: การส่ง env LC_CTYPE = en_GB.UTF-8
ยินดีต้อนรับสู่ Ubuntu 12.04.3 LTS (GNU / Linux 3.10.9-xxxx-std-ipv6-64 x86_64)

แก้ไข:
ฉันพบปัญหา ฉันพยายามเมานต์รีโมตไปที่ / mnt / new_dir โดยใช้ sudo ถ้าฉันเมานต์ไปยังตำแหน่งภายในบ้านท้องถิ่นของฉันมันก็ใช้ได้ sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount.

ฉันได้ทำตอนนี้sudo chown root:fuse /mnt/new_dirและsudo chmod 774 /mnt/new_dirและผมเชื่อว่าทุกคนทำงานตามที่ตั้งใจไว้

มีปัญหาด้านความปลอดภัยเกี่ยวกับการตั้งค่านี้ที่ฉันต้องระวังหรือไม่? (ผู้ใช้และรูทของฉันเป็นสมาชิกของfuseกลุ่มเท่านั้น


สวัสดี MBS คุณสามารถเรียกใช้ ssh ด้วย -v สวิตช์เพื่อแสดงข้อผิดพลาดใด ๆ ที่อาจมีอยู่ มันอาจจะคุ้มค่าที่จะทำเช่นนี้เพื่อดูว่ามีข้อผิดพลาดขณะอ่านไฟล์หรือไม่ นอกจากนี้คีย์ของคุณบนเซิร์ฟเวอร์เป้าหมายควรมี 600 สิทธิ์
Rqomey

ขอบคุณสำหรับการตอบสนองอย่างรวดเร็ว. ssh verbose: pastebin.com/Rm5X7y5p (ฉันจะกลับมาพร้อมกับ verbose sshfs ในนาที
แยกไม่ออก

sshfs ใช้-o ssh_command='ssh -v'คำสั่งเพียงแค่แฮงค์และไม่ส่งออกอะไร
แบ่งแยก

ฉันคิดว่าฉันอาจพบปัญหา (หรืออย่างน้อยก็ใกล้ชิดกับมัน) ฉันพยายามเมานต์รีโมตไปที่ / mnt / new_dir โดยใช้ sudo ถ้าฉันเมานต์ไปยังตำแหน่งภายในบ้านท้องถิ่นของฉันมันก็ใช้ได้ sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount. ฉันสามารถกำหนดค่าผู้ใช้ของฉันเพื่อให้มีสิทธิ์ที่จำเป็นในการเมานต์ / mnt เพื่อให้ผู้ใช้รายอื่นสามารถใช้ประโยชน์จากทรัพยากรระยะไกลได้หรือไม่
แบ่งแยก

1
ฉันเห็นว่าคุณยังใหม่กับการแลกเปลี่ยนเงินตราดังนั้นยินดีต้อนรับ แต่เคล็ดลับสองสามข้อ: ฉันรู้ว่าคุณต้องการลองและไม่เปิดเผยตัวตนด้วยการปิดบังข้อมูล แต่คุณไม่ควรทำ หากคุณให้ข้อมูลเล็กน้อยที่ระบุว่าคุณกำลังเมานท์ที่อื่น ๆ อาจสังเกตเห็นปัญหา และอย่าลิงก์ไปยังไซต์ภายนอก (pastebin) เพื่อให้ผลลัพธ์รวมไว้ที่นี่ ท้ายสุดถ้าคุณมีทางออกให้ตอบมันและยอมรับคำตอบอย่าใส่ "แก้ไข" ในหัวเรื่อง
Patrick

คำตอบ:


13

หากคุณกำลังใช้อยู่sudoคุณก็น่าจะใช้ข้อมูลประจำตัวของรูทเพื่อติดตั้งซึ่งฉันไม่เชื่อว่าเป็นสิ่งที่คุณต้องการ ฉันอาจจะไม่ทำสิ่งที่คุณถาม เมานต์/mntเป็น user1 และ acessing เป็น user2 มันจะซับซ้อนขึ้นด้วยการอนุญาตของกลุ่มและผู้ใช้ ถ้าคุณต้องการอย่างแท้จริงที่จะติดไดเรกทอรี mnt / autofsหุ้นแล้วคุณจริงๆควรจะติดตั้งผ่านทางระดับระบบสำหรับทุกการใช้

automounting

มี 3 วิธีที่ฉันรู้เกี่ยวกับการเมานท์อัตโนมัติเช่นนี้


นั่นคือปัญหา ฉันได้แก้ไขคำถามเพื่อรวมขั้นตอนที่ฉันดำเนินการเพื่อแก้ไขสิทธิ์ของโฟลเดอร์ที่เป็นปัญหา แต่ในขณะที่ใช้งานได้ฉันค่อนข้างแน่ใจว่าไม่ใช่ทางออกที่ดีที่สุด - ฉันไม่ได้พยายามที่จะใช้autofsเพราะฉันไม่สามารถสร้างการเชื่อมต่อ sshfs ได้ก่อนหน้านี้ คุณกำลังแนะนำให้ฉันเพิ่มคู่คีย์อื่นลงในlocal:/root/.ssh/keyและremote:/[user]/.ssh/authorized_keys? สิ่งที่ควรchownและchmodเป็นสำหรับการlocal:/mnt/dirเป็นอย่างไร (ฉันต้องการ perms เต็มสำหรับตัวเองและอ่านเพื่อผู้ใช้รายอื่นเท่านั้น)
แบ่งแยก

@mbs - ดูอัปเดต
slm

1
URL นั้นเป็น autofs ถูกต้องหรือไม่ เพราะมันดูไม่ถูกต้องเมื่อคุณร้องขอ มันแสดงให้เห็นกีฬาในภาษาที่ไม่ใช่ภาษาอังกฤษ
Geoffrey Anderson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.