sshfs luôn yêu cầu mật khẩu trong fstab?


20

Tôi đang cố gắng nhập một sshfs mount trong / etc / fstab với dòng sau:

sshfs#oli@192.168.0.2:/media/usb0 /media/ExtHD fuse     defaults,nonempty,allow_other 0 0

Vì vậy, khối lượng này được gắn kết khi khởi động. Sau khi khởi động lên, không có gì xảy ra, nhưng khi tôi sử dụng lệnh sudo mount -a, tôi luôn được nhắc nhập mật khẩu. Tôi đã thiết lập Khóa SSH và chuyển chúng vào máy tính ở 192.168.0.2 và có thể đăng nhập vào ssh thông thường mà không cần mật khẩu. Làm cách nào tôi có thể ngăn cầu chì yêu cầu mật khẩu của mình để âm lượng có thể được tự động gắn vào lúc khởi động?

Nếu nó giúp được gì cả, tôi đang cố gắng kết nối với máy chủ gia đình chạy Debian từ máy tính xách tay chạy Arch Linux. Cảm ơn

Câu trả lời:


13

Xác thực dựa trên khóa chỉ có thể hoạt động nếu sshquá trình có thể tìm thấy khóa của bạn. Bạn có thể có chìa khóa của bạn trong thư mục nhà của bạn; nhưng bạn chưa bao giờ nói sshfsnơi để tìm chìa khóa. Khi khởi động, nó sẽ được rootgắn tất cả các hệ thống tập tin, do đó khóa phải ở trong /root/.sshhoặc được tham chiếu trong /root/.ssh/config.

Tôi khuyên bạn nên gắn hệ thống tập tin sau khi bạn đăng nhập và là người dùng của riêng bạn. Đặt đoạn mã này trong tập lệnh được thực thi khi bạn đăng nhập:

ssh-add ~/.ssh/name_of_key.id_rsa
sshfs homeserver:/media/usb0 ~/exthd

Đặt một bí danh được gọi homeservertrong ~/.ssh/config:

Host homeserver
HostName 192.168.0.2
User oli

Ahh, đó là một cách tốt hơn để làm điều đó, tôi không nghĩ sẽ đưa nó vào kịch bản đăng nhập của mình. Cảm ơn!
semiserious

Hãy cẩn thận khi sử dụng ~trong điểm gắn kết. Nếu bạn đang sử dụng biểu tượng trình khởi chạy trên bảng để chạy lệnh thay vì thiết bị đầu cuối, thì ~có thể không được đánh giá vì /home/và lệnh sẽ thất bại.
Nick

@Nick Nếu bạn đang sử dụng GUI, nó có thể có một công cụ dành riêng cho tự động hóa. Nếu bạn làm theo câu trả lời của tôi, bạn sẽ đặt hai lệnh trong tập lệnh shell; biểu tượng launcher sẽ chạy tập lệnh đó.
Gilles 'SO- ngừng trở nên xấu xa'

10

Tôi đã có thể tạo sshfs mount thông qua fstab với Ubuntu 14.04 bằng cách sử dụng cú pháp sau đây với tư cách là người dùng chuẩn (lưu ý mọi thứ trong CAPS là một biến để bạn điền vào):

USER@HOST:/REMOTE_DIR /LOCAL_DIR fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID,gid=USER_GID 0 0

Đây là sự kết hợp của thông tin được tìm thấy ở đây /superuser/669287/automount-sshfs-USE-fstab-without-mount-a và thêm delay_connect từ đây https://askubfox.com/questions/ 326977 / sshfs-không-lắp-tự động-lúc-boot-mặc dù-etc-fstab-cấu hình .

Tôi đã sử dụng hướng dẫn này để có được USER_ID và USER_GID: https://kb.iu.edu/data/adwf.html

Để tìm UID hoặc GID của người dùng trong Unix, hãy sử dụng lệnh id. Để tìm UID người dùng cụ thể, tại dấu nhắc Unix, nhập:

id -u username

Thay thế tên người dùng bằng tên người dùng thích hợp. Để tìm GID của người dùng, tại dấu nhắc Unix, nhập:

id -g username

Ngoài ra, nếu bạn muốn có một hướng dẫn đầy đủ, nó sẽ được đăng tại https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ub Ubuntu-14-04 /


Liên kết đó: variux.com/blog/?p=161 dường như không còn hoạt động nữa ...
Christian Casutt

@ChristianMuggli cảm ơn bạn đã bình luận. Tôi đã cập nhật địa chỉ hướng dẫn đầy đủ. Tôi đã không thử hướng dẫn trong một thời gian dài, tuy nhiên. variux.com/sshfs-automount-at-boot-with-fstab-on-ub Ubuntu
variuxDavid

5

Tôi đã từng gặp vấn đề tương tự.

Tôi đã thiết lập các khóa ssh trước đó ssh-keygenvà sau đóssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.100

ssh hoạt động tốt mà không hỏi tôi mật khẩu nên tôi bối rối không hiểu tại sao sshfs vẫn muốn mật khẩu ...

Điều đó có nghĩa là,

ssh root@192.168.0.100 

hoạt động tốt, tuy nhiên sshfs vẫn yêu cầu mật khẩu khi tôi gõ

sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other

Như Gilles đã giải thích ở trên, sshfsđã tìm trong thư mục gốc để tìm các khóa cần thiết.

Do đó, tôi đã giải quyết vấn đề này bằng cách sao chép các tập tin id_rsa và id_rsa.pub từ thư mục .ssh ẩn của thư mục nhà của tôi vào thư mục .ssh của root

cp /home/pi/.ssh/id_rsa /root/.ssh/
cp /home/pi/.ssh/id_rsa.pub /root/.ssh/

Sau đó, gõ các thao tác sau mà không làm phiền tôi về mật khẩu:

sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other

Điều này thực sự rất tệ từ góc độ bảo mật. Tốt hơn là tạo một bộ khóa riêng cho root và thêm cái này vào ủy quyền. Bạn không bao giờ nên sao chép khóa riêng xung quanh.
Christian Wolf

3

Nếu bạn muốn nó khởi động mà không cần mật khẩu, bạn sẽ cần tạo khóa ssh công khai / riêng tư mà không cần mật khẩu. Không khuyến khích, nhưng ít nhất bạn có thể bảo vệ các tệp đó với chmod 400người dùng root.

Sau đó, như thường lệ, bạn sẽ cần sao chép khóa chung trên điểm gắn kết:

ssh-copy-id -i my_new_key.pub oli@192.168.0.2

Và bạn sẽ cần nói với sshfs sử dụng khóa này.

oli@192.168.0.2:/media/usb0 /media/ExtHD fuse     defaults,nonempty,allow_other,'IdentityFile /path/to/private/key' 0 0

2
SSHFS version 2.8 fuse: unknown option 'SSHOPT=IdentityFile /home/ravi/.ssh/id_boxy_rsa'
Tom Hale

1
@TomHale thay vì ,SSHOPT='IdentityFile /path/to/private/key'chỉ đơn giản là,IdentityFile /path/to/private/key
pulkitsinghal

2

Hoạt động hoàn hảo với tôi trên Debian 8.2 khi thêm dòng sau vào fstab:

user@hostname:/path/to/localmountpoint /path/to/remotemountpoint fuse.sshfs _netdev,user,port=(if_not_22),idmap=user,transform_symlinks,identityfile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=user_id,gid=group_id 0 0

Tên máy chủ cho biết máy chủ từ xa (thư mục để gắn kết) người dùng giống nhau cục bộ và từ xa. (dễ dàng hơn)

Đảm bảo rằng bạn đã tạo cục bộ khóa ssh cho người dùng bằng cách sử dụng ssh-keygenvà sử dụng ssh-copy-idđể sao chép khóa vào máy chủ từ xa (tên máy chủ).

Bạn có thể tìm user_idgroup_idcho người dùng trong máy chủ cục bộ /etc/passwd.

Cũng đảm bảo rằng người dùng có quyền đọc / ghi trong thư mục path/to/localmountpoint.


2

Bạn thực sự có thể gắn kết SSHFS mà không cần khóa công khai khi khởi động bằng cách sử dụng tùy chọn password_stdin, nhưng không phải với fstab.

Những gì bạn cần là một tập tin kịch bản nhỏ và cron.

Xin lưu ý rằng khóa công khai luôn là lựa chọn tốt hơn. Nhưng đôi khi các khóa công khai không hoạt động (bản thân tôi đã gặp vấn đề đó một vài lần). Xin lưu ý rằng tệp tập lệnh sẽ chứa mật khẩu đơn giản. Do đó, bạn nên đảm bảo rằng chỉ root mới có quyền cho tập tin này!

Tệp tập lệnh có thể trông như thế này (/root/automount.sh):

#!/bin/sh
if [ $(mount | grep 'user@server:/folder' | wc -l) -ne 1 ]
then
    echo 'PASSWORD' | sshfs user@server:/folder /mnt/mountpoint -o password_stdin,allow_other
    echo 'SSHFS has been mounted.'
else
    echo 'SSHFS is already mounted.'
fi

Để chạy cái này khi khởi động, bạn có thể sử dụng crontab làm root và nhập dòng này:

@reboot /root/automount.sh

Như đã nêu ở trên, bạn nên đảm bảo rằng hoàn toàn không ai có thể đọc tệp vì nó chứa mật khẩu văn bản đơn giản!

-rwx------ 1 root root 526 Nov 21 12:57 automount.sh

Đến bây giờ, sau mỗi lần khởi động lại, hệ thống của bạn sẽ tự động gắn kết SSHFS bằng cách sử dụng thông tin đăng nhập.


0

Có cùng một vấn đề. Cuối cùng, nó đã giúp loại cài đặt thành cầu chì đơn giản, hoặc (có lẽ nhiều hơn) các tùy chọn cắt ngắn để:

fuse reconnect,idmap=user,allow_other,default_permissions

mà cuối cùng đã làm việc cho tôi


0

Nếu bạn đang cố gắng kết nối với máy chủ không hỗ trợ khóa và bạn vẫn muốn nó tự động, bạn có thể sử dụng sshpassđể nhập mật khẩu cho bạn ngay cả khi có sshfsvà thậm chí cả trong fstab.

Ví dụ: nếu bạn đặt một cái gì đó tương tự như thế này vào /etc/fstab:

sshfs#username@host:/  /mnt/here   fuse   auto,ssh_command=sshpass\040-f\040/root/.ssh/host.password\040ssh  0  0

Sau đó đặt mật khẩu vào tên tệp được chỉ định trong /etc/fstab:

echo 'secret' > /root/.ssh/host.password

Hãy chắc chắn rằng bạn đã cài đặt sshpass:

pacman -S sshpass  # if you're using Arch Linux

Sau đó, nó sẽ làm việc:

mount /mnt/here

Trước tiên, bạn có thể cần phải đến sshmáy chủ để xác nhận khóa của mình, nhưng sau đó, nó sẽ hoạt động mà không có tương tác thủ công và với autocờ trong fstabđó sẽ gắn vào lúc khởi động mà không cần nhập mật khẩu thủ công.

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.