Làm thế nào để tự động gắn kết bằng sshfs?


14

Tôi đang sử dụng lệnh sau để gắn thư mục ssh ubfox vào máy tính ub Ubuntu của tôi.

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

Câu hỏi của tôi là, tôi có thể tạo một tập lệnh cho điều này trong máy tính để bàn của mình không, nơi tôi có thể nhấp đúp và chạy tập lệnh này khi tôi cần gắn ổ đĩa mà không cần phải gõ lệnh thủ công.

Câu trả lời:


15

Bạn có thể tạo một trình khởi chạy và thêm nó vào thanh trình khởi chạy của mình bằng cách kéo và thả .desktop-file vào đó:

    #!/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

Gợi ý - công việc thậm chí ít hơn:

Nếu bạn muốn làm việc ít hơn (= tự động kết nối) và giao diện người dùng đồ họa, bạn có thể muốn kiểm tra Gigolo Cài đặt gigolo . Nó có khả năng tự động gắn bookmark, bất cứ khi nào có hệ thống tập tin được đánh dấu. Bạn có thể muốn kiểm tra xem.

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

Chạy đi gigolo. Có một tùy chọn trong các tùy chọn đặt nó vào chế độ tự động khởi động và một tùy chọn khác để kích hoạt biểu tượng khay. Kiểm tra cả hai. Sau đó thêm dấu trang của bạn.

Đây là một ảnh chụp màn hình:

nhập mô tả hình ảnh ở đây

Cách vỏ

Một giải pháp khác là đặt dòng sau vào crontab của bạn (chỉnh sửa /etc/crontabvới các đặc quyền sudo):

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

Nhưng vì trình quản lý mật khẩu của Ubuntu không có mặt khi lệnh được chạy, bạn cần sử dụng cặp khóa riêng / mật khẩu không có mật khẩu để xác thực với máy chủ ssh đang đề cập (hoặc một phương thức xác thực tương tự). Điều này sẽ gắn kết nó trên mỗi lần khởi động lại.

Tuy nhiên, một giải pháp khác sẽ là chỉnh sửa /etc/fstab(cung cấp Phiên bản Ubuntu của bạn cung cấp tùy chọn đó).


1
Tôi không thể sử dụng gigolo. Vì tôi muốn sử dụng một điểm gắn cụ thể trong thư mục nhà của tôi. Giải pháp đầu tiên của bạn có vẻ tốt. Nhưng tôi không rõ ràng về việc đặt tên tập tin. YOu đã đưa ra ".desktop-file" Đó có phải là tên tệp hoặc phần mở rộng. Xin vui lòng cho tôi thêm ví dụ về việc đặt tên tập tin. Tôi có thể thử nó.
BlueBird

Đó là phần mở rộng. Tất cả các trình khởi chạy trong ubfox kết thúc bằng ".desktop". Tạo một tập tin trống. Sao chép văn bản tôi đã đăng ở trên vào nó. Thay thế văn bản đằng sau "Tên =" bằng bất cứ điều gì phù hợp với bạn và thay thế các đường dẫn thực trong văn bản đằng sau "Exec =". Sau đó, lưu nó dưới dạng "connect.desktop" hoặc "mountxy.desktop" (ví dụ). Sau khi bạn lưu tệp Kéo và thả tệp vào bảng khởi chạy của bạn hoặc bất cứ nơi nào bạn muốn.
con-f-use

Tuyệt quá!! Nó đã làm việc.
BlueBird

8
OMG ... tên tồi tệ nhất từng có cho một chương trình.
Lekensteyn

Rõ ràng không có tùy chọn để thêm gigolo vào tự động khởi động nữa, vì vậy bạn sẽ phải tự làm điều đó. Chạy gnome-session-propertiesvà thêm /usr/bin/gigololệnh. Không thể chọn điểm gắn kết, nhưng bạn có thể tạo một liên kết tượng trưng đến thư mục chính của bạn (với ln -s). Bạn có thể tìm thấy điểm gắn kết ban đầu bằng cách nhấp chuột phải vào thư mục trong trình quản lý tệp và chọn Open in Local Terminal.
Seppo Enarvi

4

Chủ đề diễn đàn này cho thấy một phương pháp tạo ra một SSHFS tự động dường như chính xác với những gì bạn muốn làm.


Các chủ đề khá cũ và để thêm gắn kết phụ thuộc mạng, bây giờ chúng ta có thể sử dụng x-systemd_netdevcác tùy chọn.
Turgon

3

Bạn có thể chỉ cần nhập tập lệnh này vào tập lệnh shell và bạn có thể tạo một trình khởi chạy cho tập lệnh này trên máy tính để bàn.

Ví dụ mountssh.sh:

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

đảm bảo chmod +x mountssh.shvà sau đó nhấp vào nó sẽ thực thi

Ngoài ra, bạn có thể gắn kết nó thông qua gvfs, bằng cách nhấp chuột phải vào màn hình nền và tạo trình khởi chạy với tham số URL : ssh://user@192.xx.xx.xx.xx/dir/dir. Theo mặc định, nó gắn kết với ~/.gvfs/.... Nếu bạn muốn gắn bó với /home/username/mount/xxx, bạn có thể tạo liên kết tượng trưng từ gvfs này đến cái này.


Tôi đã tạo tập tin "mount-192.168.1.5.sh" trên máy tính để bàn của mình. Khi tôi nhấp đúp chuột vào nó, nó được mở bằng gedit.
BlueBird

Bạn phải tạo tệp sh này với các đặc quyền thực thi ở bất cứ đâu và tạo một trình khởi chạy trên máy tính để bàn của bạn, trỏ đến tệp .sh này.
Iradrian

2

Bạn thậm chí có thể mang nó một bước xa hơn và có autofs chăm sóc lắp cho bạn. Vì autofs không hoạt động đặc biệt tốt với xác thực khóa công khai SSH (trừ khi bạn muốn tạo cặp khóa không mật khẩu cho siêu người dùng ), có những công cụ cho phép bạn sử dụng khóa SSH, ssh-agent và móc khóa của người dùng:

  • autosshfs : mỗi người dùng SSHFS tự động sử dụng cấu hình SSH của người dùng
  • afuse : một thiết bị tự động được triển khai với FUSE

0

Tôi gắn kết một thư mục theo cùng một cách chính xác, những gì tôi đã làm là tạo một trình khởi chạy tùy chỉnh trỏ đến một .shtệp có chứa lệnh. Chỉ cần đảm bảo tệp có quyền thực thi và bạn sẽ ổn.

Tôi chỉ cần nhấp vào launcher:

nhập mô tả hình ảnh ở đây


0

Tôi đã cố gắng sử dụng cron để tự động gắn thư mục ssh, nhưng nó gây ra lỗi Network is unreachable. Đó là bởi vì việc thực hiện công việc cron là quá sớm để thiết lập kết nối ip. Sau khi tôi chèn ngủ trước sshfslệnh, nó sẽ cài đặt thành công thư mục ssh.

sleep 5 && sshfs ......

Vì vậy, tôi đã thực hiện kịch bản này để đáp ứng yêu cầu của tôi.

#! /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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.