sshfs với fstab: thiết lập lại kết nối bằng ngang hàng


10

Tôi đang cố gắng cho phép máy tính xách tay của tôi (Ubuntu 13.04) truy cập vào ổ cứng PC (Lubfox 13.04) thông qua SSHFS. Tôi đang sử dụng các khóa RSA để kết nối.

Nó hoạt động hoàn toàn tốt nếu tôi gõ cái này trong terminal:

sshfs my-PC:/a_folder /media/a_folder

Nhưng tôi muốn nó được gắn tự động khi tôi khởi động máy tính xách tay của mình. Vì vậy, tôi đã thêm mình vào nhóm cầu chì:

sudo adduser mynickname fuse

Và tôi đã thêm dòng sau vào tập tin fstab của mình:

sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse defaults,idmap=user,_netdev 0 0

Khi tôi khởi động máy tính xách tay, a_folder xuất hiện trong danh sách các thiết bị, nhưng không được gắn kết. Khi tôi cố gắng truy cập nó thông qua Nautilus, nó sẽ hiển thị lỗi sau:

mount: only root can mount sshfs#mynickname@my-PC:/a_folder on /media/a_folder

Tôi gặp lỗi tương tự nếu tôi thử

mount /media/a_folder

trong một thiết bị đầu cuối.

Nếu tôi cố gắng

sudo mount /media/a_folder

tôi có

read: Connection reset by peer

Tôi đã cố gắng thêm "allow_other" làm tùy chọn trong mục nhập fstab và không bỏ sót dòng liên quan trong /etc/fuse.conf, nhưng nó không thay đổi gì cả.

Người dùng "mynickname" là chủ sở hữu của thư mục / media / a_folder và có quyền rwx.

Tôi đã xem xét nhiều chủ đề trên internet về những người có vấn đề khá giống nhau, nhưng cho đến nay vẫn chưa có gì hiệu quả. Thông thường, mọi người thậm chí không thể làm

sshfs my-PC:/a_folder /media/a_folder

không có lỗi, trong khi điều này hoạt động tốt trên máy tính xách tay của tôi.

Bất kỳ cái nhìn sâu sắc và lời khuyên sẽ được đánh giá rất cao! Cảm ơn.

EDIT: Tôi đã giải quyết vấn đề này một thời gian trước đây, nhưng tôi quên cập nhật bài viết này. Vì vậy, đây là những gì trong fstab của tôi:

sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse noauto,_netdev,idmap=user,user,default_permissions 0 0

Tùy chọn chính để thêm là default_permissions nếu tôi nhớ lại. Tôi đã phải thêm mynickname vào nhóm thuộc / a_folder / trên PC của tôi.

fstab  sshfs 

Câu trả lời:


8

Vấn đề bạn gặp phải là người dùng bình thường của bạn có một thiết lập chính xác cho tệp nhận dạng của bạn, trong khi người dùng root không biết nên sử dụng khóa ssh nào.

Bạn có thể khắc phục điều này bằng cách báo cho fstab biết tập tin / khóa ssh nào để sử dụng trong khi cố gắng kết nối:

sshfs#user@host:/mnt/whatever/ /mnt/whatever/        fuse    user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/USER/.ssh/KEYFILE,idmap=user,allow_other  0   2

Cảm ơn câu trả lời của bạn. Tôi đã thử với tùy chọn IdentityFile, nhưng tôi không chỉ định tùy chọn uid và gid, vì vậy tôi sẽ thử điều đó!

Về mặt kỹ thuật, bạn không cần sử dụng sudonếu mọi thứ được thiết lập chính xác cho ngàm FUSE. Ngoài ra, cài đặt uid / gid chỉ nên ảnh hưởng đến người dùng nào có quyền đối với các tệp trên hệ thống của bạn.
earthmeLon

Vì vậy, tôi đã thử với uid, gid, IdentityFile, allow_other, tất cả các tùy chọn đó cùng một lúc, và thật không may, nó vẫn không hoạt động. Vẫn là lỗi tương tự.

Bạn có phiền khi đăng một mẫu về cách bạn đã viết nó không? Bạn nên trỏ đến khóa riêng của bạn chứ không phải khóa chung của bạn.
earthmeLon

1
Vì vậy, cả hai phương pháp đều không hiệu quả. Vẫn cùng một lỗi. Đối với tệp cấu hình, tôi đã thử bằng cách chỉ định đúng máy chủ: người dùng, tên máy chủ (đã thử cả IP và tên), nhận dạng tệp. Nhưng nó không hoạt động tốt. Vì vậy, điều cuối cùng tôi làm bây giờ là tôi đã thêm lệnh sshfs my-PC: / a_folder / media / a_folder trong các ứng dụng khởi động. Nó không sạch như sử dụng fstab, nhưng nó hoạt động đủ tốt cho đến bây giờ. Cảm ơn sự giúp đỡ của bạn và đề xuất của bạn! Nếu bạn nghĩ về điều gì khác, hãy chia sẻ, tôi sẽ đánh giá cao điều đó!

3

Để có được đầu ra gỡ lỗi thực sự, bạn cần thêm cả hai sshfs_debugdebugtùy chọn vào mount:

sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse defaults,idmap=user,_netdev,debug,sshfs_debug 0 0

Với điều này, bạn sẽ nhận được rất nhiều thông tin gỡ lỗi để giúp bạn:

$ sudo mount -a
SSHFS version 2.5
FUSE library version: 2.9.2
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-2> <user@box> <-s> <sftp>
user@box's password: 
Server version: 3
Extension: posix-rename@openssh.com <1>
Extension: statvfs@openssh.com <2>
Extension: fstatvfs@openssh.com <2>
Extension: hardlink@openssh.com <1>
Extension: fsync@openssh.com <1>
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
remote_uid = 1001
   INIT: 7.19
   flags=0x00000011
   max_readahead=0x00020000
   max_write=0x00020000
   max_background=0
   congestion_threshold=0
   unique: 1, success, outsize: 40
unique: 2, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 2771
unique: 3, opcode: LOOKUP (1), nodeid: 1, insize: 47, pid: 3371

Trong trường hợp của tôi, tôi phát hiện ra rằng máy của tôi chỉ được liệt kê trong đó .ssh/config, vì vậy nó không thể giải quyết được cho root.

Và BTW, bạn cần đặt uid và gid, vì idmap=userdường như chỉ hoạt động cho người dùng hiện tại, đó là root trong trường hợp này.


3

Vấn đề này cũng có thể xảy ra khi khóa máy chủ của ssh thay đổi.

Cố gắng kết nối với máy chủ thông qua ssh (ví dụ ssh username@hostIP). Nếu lỗi sau xuất hiện:

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!    @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Làm theo các hướng dẫn trong thông báo lỗi để xóa khóa cũ và thử kết nối lại qua ssh. Nếu lỗi không xuất hiện nữa, kết nối sshfs sẽ hoạt động.


"cố gắng kết nối với máy chủ qua ssh" Đảm bảo thực hiện việc này với quyền root nếu bạn đang gắn thư mục dưới dạng root (đó là những gì xảy ra khi tự động hóa). known_hostsTệp của người dùng có thể khác với known_hoststệp gốc .
Shelvacu

0

Tiết lộ đầy đủ: đam mê trường học cũ, nhưng thương hiệu mới cho thế giới linux / mã nguồn mở

Trước hết, tôi vẫn đang sử dụng xác thực mật khẩu vì tôi chưa đủ hiểu biết về các khóa RSA. Đó là gần đầu danh sách mặc dù.

Thông tin cài đặt có liên quan: Sử dụng MacBook Pro đã cài đặt VMWare Fusion, trên đó tôi có máy chủ Ubuntu 10.04 LTS. Dựa vào thiết bị đầu cuối của Mac và SSH cho hầu hết tất cả các tương tác máy chủ của tôi

Sau khi thực hiện cài đặt Drupal, tôi quay lại ảnh chụp nhanh trước đó và đột nhiên không thể thực thi một lệnh mà tôi vừa sử dụng khoảnh khắc trước đó: sshfs -o idmap=user -o allow_other user@mac.home:/Users/<username>/Documents ~/mountpoint

Vấn đề là các phím đã không đồng bộ. Tôi không biết liệu tôi có thực sự cần phải làm điều này trên cả máy chủ và máy chủ của mình không, nhưng tôi đã xóa tất cả các khóa cục bộ trên mỗi lần đầu tiên bằng cách sao lưu tệp know_hosts, sau đó chỉnh sửa tệp know_hosts để xóa các mục nhập .
Trên máy Mac, tệp này được đặt tại: /Users/<username>/.ssh/known_hosts
Trên Ubuntu, tệp này được đặt tại:/home/<username>/.ssh/known_hosts

Vì vậy, để tóm tắt, tất cả được thực hiện từ thiết bị đầu cuối Mac của tôi, sau khi khởi động máy chủ Ubuntu:

cp /Users/<username>/.ssh/known_hosts /Users/<username>/.ssh/known_hosts.old
nano  /Users/<username>/.ssh/known_hosts
  # remove extra entries, save file
ssh <username>@ubuntu_server
cp /home/<username>/.ssh/known_hosts, /home/<username>/.ssh/known_hosts.old
nano /home/<username>/.ssh/known_hosts
  # remove extra entries, save file

Khi SSH đầu tiên vào mỗi hệ thống, SSH nhắc tôi cho phép các khóa RSA được thêm vào và tất cả các công việc sau đó.

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.