วิธีการเมานท์อัตโนมัติโดยใช้ sshfs?


14

ฉันใช้คำสั่งต่อไปนี้เพื่อเมานต์ไดเรกทอรี ssh ubuntu กับพีซี ubuntu ของฉัน

sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

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

คำตอบ:


15

คุณสามารถสร้างตัวเรียกใช้งานและเพิ่มลงในแถบตัวเรียกใช้งานของคุณโดยการลากและวาง.desktopไฟล์ที่นั่น:

    #!/usr/bin/env xdg-open

    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon[en_US]=nautilus
    Name[en_US]=Connect to xy
    Exec=shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx
    #OR: to mount and than open in nautilus (note the '/dir' where ':dir' used to be)
    #Exec=nautilus sftp://user@192.xx.xx.xx.xx/dir/dir
    Comment[en_US]=Connect to xy via ssh
    Name=Connect to xy
    Comment=Connect to xy via ssh
    Icon=nautilus

คำแนะนำ - ทำงานได้น้อยลง:

หากคุณต้องการแม้จะทำงานน้อยลง (= AutoConnect) และอินเตอร์เฟซผู้ใช้แบบกราฟิกที่คุณอาจต้องการที่จะตรวจสอบแมงดา ติดตั้ง Gigoloมันมีความสามารถในการติดตั้งคั่นหน้าอัตโนมัติเมื่อใดก็ตามที่ระบบไฟล์ที่คั่นหน้าอยู่ คุณอาจต้องการตรวจสอบว่า

sudo apt-get install gigolo   # or use the install link above

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

นี่คือภาพหน้าจอ:

ป้อนคำอธิบายรูปภาพที่นี่

วิธีเชลล์

อีกวิธีคือให้วางบรรทัดต่อไปนี้ใน crontab ของคุณ (แก้ไข/etc/crontabด้วยสิทธิ์ sudo):

@reboot sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

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

วิธีแก้ปัญหาอื่นก็คือการแก้ไขของคุณ/etc/fstab(ให้ Ubuntu-Version ของคุณมีตัวเลือกนั้น)


1
ฉันไม่สามารถใช้ gigolo ได้ เพราะฉันต้องการใช้จุดติดตั้งเฉพาะภายในโฟลเดอร์บ้านของฉัน ทางออกแรกของคุณดูดี แต่ฉันไม่ชัดเจนเกี่ยวกับการตั้งชื่อไฟล์ คุณได้ให้ ".desktop-file" นั่นคือชื่อไฟล์หรือส่วนขยายที่จะเป็น โปรดยกตัวอย่างเพิ่มเติมเกี่ยวกับการตั้งชื่อไฟล์ จากนั้นฉันสามารถลอง
BlueBird

มันเป็นส่วนขยาย ตัวเรียกใช้งานทั้งหมดใน ubuntu ลงท้ายด้วย ".desktop" สร้างไฟล์ว่าง คัดลอกข้อความที่ฉันโพสต์ไว้ด้านบน แทนที่ข้อความที่อยู่เบื้องหลัง "ชื่อ =" โดยสิ่งที่เหมาะกับคุณและแทนที่เส้นทางจริงในข้อความที่อยู่เบื้องหลัง "Exec =" จากนั้นบันทึกเป็น "connect.desktop" หรือ "mountxy.desktop" (ตัวอย่าง) หลังจากที่คุณบันทึกไฟล์ให้ลากแล้ววางลงในแผงเรียกใช้งานของคุณหรือที่ไหนก็ได้ที่คุณต้องการ
con-f-use

ยิ่งใหญ่ !! มันได้ผล
BlueBird

8
OMG ... ชื่อที่แย่ที่สุดสำหรับโปรแกรม
Lekensteyn

เห็นได้ชัดว่าไม่มีตัวเลือกในการเพิ่ม Gigolo เพื่อเริ่มอัตโนมัติอีกต่อไปดังนั้นคุณจะต้องทำด้วยตัวเอง เรียกใช้gnome-session-propertiesและเพิ่ม/usr/bin/gigoloคำสั่ง ไม่สามารถเลือกจุดเชื่อมต่อได้ แต่คุณสามารถสร้างลิงก์สัญลักษณ์ไปยังไดเรกทอรีบ้านของคุณ (พร้อมln -s) Open in Local Terminalคุณสามารถหาจุดติดตั้งเดิมโดยคลิกขวาที่โฟลเดอร์ในการจัดการไฟล์และเลือก
Seppo Enarvi

4

กระทู้ในฟอรัมนี้แสดงวิธีการสร้าง SSHFS แบบอัตโนมัติซึ่งดูเหมือนจะเป็นสิ่งที่คุณต้องการทำ


เธรดค่อนข้างเก่าและเพิ่มการเมานท์เครือข่ายเราสามารถใช้x-systemdและ_netdevตัวเลือกได้แล้ว
Turgon

3

คุณสามารถพิมพ์สิ่งนี้ลงในเชลล์สคริปต์และคุณสามารถสร้างตัวเรียกใช้งานได้ที่เดสก์ท็อป

ตัวอย่างเช่นmountssh.sh:

#!/bin/bash
shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

ตรวจสอบให้แน่ใจchmod +x mountssh.shแล้วคลิกมันจะดำเนินการ

หรือคุณสามารถติดมันผ่าน gvfs โดยการคลิกขวาที่เดสก์ทอปและการสร้างตัวเปิดที่มีพารามิเตอร์ URL ssh://user@192.xx.xx.xx.xx/dir/dirนี้: โดยค่าเริ่มต้นมันจะเมาน~/.gvfs/...ต์ ถ้าคุณต้องการที่จะติดกับ/home/username/mount/xxxคุณสามารถสร้าง symlink จาก gvfs หนึ่งไปที่นี้


ฉันสร้างไฟล์ "mount-192.168.1.5.sh" บนเดสก์ท็อปของฉัน เมื่อฉันคลิกสองครั้งมันจะถูกเปิดด้วย gedit
BlueBird

คุณต้องสร้างไฟล์ sh นี้ด้วยสิทธิพิเศษที่สามารถเรียกใช้งานได้จากทุกที่และสร้างตัวเรียกใช้งานที่เดสก์ท็อปซึ่งชี้ไปที่ไฟล์. sh นี้
Iradrian

2

คุณสามารถใช้ขั้นตอนต่อไปและให้autofsดูแลการติดตั้งสำหรับคุณ เนื่องจาก autofs ทำงานได้ไม่ดีเป็นพิเศษกับการตรวจสอบสิทธิ์กุญแจสาธารณะ SSH (เว้นแต่คุณต้องการสร้างรหัสคู่ที่ไม่มีรหัสผ่านสำหรับ superuser ) มีเครื่องมือที่ช่วยให้คุณใช้คีย์ SSH, ssh-agent และ keychain ได้:

  • autosshfs : ต่อผู้ใช้ SSHFS automount โดยใช้การกำหนดค่า SSH ของผู้ใช้
  • afuse : automounter ที่ใช้งานกับ FUSE

0

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

ฉันเพียงคลิกที่ตัวเรียกใช้:

ป้อนคำอธิบายรูปภาพที่นี่


0

ผมพยายามที่จะใช้ cron โดยอัตโนมัติติดไดเรกทอรี SSH Network is unreachableแต่มันก็ทำให้เกิดข้อผิดพลาดว่า มันเป็นเพราะการดำเนินงาน cron เร็วเกินไปที่จะสร้างการเชื่อมต่อไอพี หลังจากที่ฉันแทรก sleep ก่อนsshfsคำสั่งมันจะเมาท์ไดเร็กทอรี ssh

sleep 5 && sshfs ......

ดังนั้นฉันจึงทำสคริปต์นี้เพื่อตอบสนองความต้องการของฉัน

#! /bin/sh
while true
do 
    ping -c1 -w1 ssh_server_ip > /dev/null && break
done
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 sshname:/mountpath /localmountpath
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.