sshfs dengan fstab: koneksi diatur ulang oleh rekan


10

Saya mencoba untuk mengizinkan laptop saya (Ubuntu 13.04) untuk mengakses hard drive PC saya (Lubuntu 13.04) melalui SSHFS. Saya menggunakan kunci RSA untuk menghubungkan.

Ini berfungsi dengan baik jika saya mengetik ini di terminal:

sshfs my-PC:/a_folder /media/a_folder

Tapi saya ingin itu dipasang secara otomatis ketika saya boot laptop saya. Jadi saya menambahkan diri saya ke grup sekering:

sudo adduser mynickname fuse

Dan saya menambahkan baris berikut ke file fstab saya:

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

Ketika saya mem-boot laptop, a_folder muncul di daftar perangkat, tetapi tidak dipasang. Ketika saya mencoba mengaksesnya melalui Nautilus, ini menampilkan kesalahan berikut:

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

Saya mendapatkan kesalahan yang sama jika saya mencoba

mount /media/a_folder

di terminal.

Jika saya mencoba

sudo mount /media/a_folder

saya mendapat

read: Connection reset by peer

Saya mencoba menambahkan "allow_other" sebagai opsi pada entri fstab, dan menghapus komentar pada baris terkait di /etc/fuse.conf, tetapi tidak mengubah apa pun.

Pengguna "mynickname" adalah pemilik folder / media / a_folder dan memiliki izin rwx.

Saya melihat banyak utas di internet tentang orang-orang dengan masalah yang sangat mirip, tetapi sejauh ini tidak ada yang berhasil. Biasanya, orang tidak bisa melakukannya

sshfs my-PC:/a_folder /media/a_folder

tanpa mendapatkan kesalahan, sedangkan ini berfungsi dengan baik di laptop saya.

Wawasan dan tips apa pun akan sangat dihargai! Terima kasih.

EDIT: Saya memecahkan masalah ini beberapa waktu yang lalu, tetapi saya lupa memperbarui posting ini. Jadi inilah yang ada di dalam fstab saya:

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

Opsi kunci untuk ditambahkan adalah default_permissions jika saya ingat. Saya harus menambahkan mynickname ke grup yang menjadi milik / a_folder / di PC-saya.

fstab  sshfs 

Jawaban:


8

Masalah yang Anda alami adalah bahwa pengguna normal Anda memiliki pengaturan yang benar untuk file identitas Anda, sementara pengguna root tidak tahu apa kunci ssh untuk digunakan.

Anda dapat memperbaikinya dengan memberi tahu fstab apa file identitas / kunci ssh untuk digunakan saat mencoba menghubungkan:

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

Terima kasih atas jawaban anda. Saya sudah mencoba dengan opsi IdentityFile, tetapi saya tidak menentukan opsi uid dan gid, jadi saya akan mencobanya!

Secara teknis, Anda tidak perlu menggunakan sudojika semuanya sudah diatur dengan benar untuk pemasangan FUSE. Selain itu, pengaturan uid / gid hanya akan memengaruhi pengguna mana yang memiliki hak atas file di sistem Anda.
earthmeLon

Jadi saya hanya mencoba dengan uid, gid, IdentityFile, allow_other, semua opsi pada saat yang sama, dan sayangnya itu masih tidak berfungsi. Masih kesalahan yang sama.

Maukah Anda memposting sampel tentang bagaimana Anda membuatnya ditulis? Anda harus menunjuk ke kunci pribadi Anda, dan bukan kunci publik Anda.
earthmeLon

1
Jadi kedua metode tidak berhasil. Masih kesalahan yang sama. Untuk file konfigurasi, saya mencoba dengan menentukan host yang tepat: pengguna, nama host (mencoba IP dan nama), identityfile. Tapi itu tidak berhasil juga. Jadi apa yang akhirnya saya lakukan sekarang adalah saya menambahkan perintah sshfs my-PC: / a_folder / media / a_folder di aplikasi startup. Ini tidak sebersih menggunakan fstab, tetapi berfungsi cukup baik untuk saat ini. Terima kasih atas bantuan dan saran Anda! Jika Anda memikirkan hal lain, silakan bagikan, saya akan menghargainya!

4

Untuk mendapatkan hasil debug nyata Anda perlu menambahkan keduanya sshfs_debugdan debugopsi ke mount:

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

Dengan ini, Anda akan mendapatkan banyak info debug untuk membantu Anda:

$ 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

Dalam kasus saya, saya menemukan bahwa mesin saya hanya terdaftar .ssh/config, jadi tidak dapat dipecahkan untuk root.

Dan BTW, Anda perlu mengatur uid dan gid, karena idmap=usersepertinya hanya berfungsi untuk pengguna saat ini, yang merupakan root dalam kasus ini.


3

Masalah ini juga dapat terjadi ketika kunci host ssh berubah.

Coba sambungkan ke server melalui ssh (mis ssh username@hostIP). Jika kesalahan berikut muncul:

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

Ikuti instruksi dalam pesan kesalahan untuk menghapus kunci lama dan mencoba untuk terhubung lagi melalui ssh. Jika kesalahan tidak muncul lagi, koneksi sshfs akan berfungsi.


"coba sambungkan ke server melalui ssh" Pastikan untuk melakukan ini sebagai root jika Anda memasang direktori sebagai root (yang adalah apa yang terjadi ketika automounting). File pengguna known_hostsdapat berbeda dari known_hostsfile root .
Shelvacu

0

Pengungkapan lengkap: old-school geek, tetapi brand baru di dunia linux / open source

Pertama, saya masih menggunakan otentikasi kata sandi karena saya belum cukup paham dengan kunci RSA. Itu mendekati bagian atas daftar.

Info pengaturan yang relevan: Menggunakan MacBook Pro dengan VMWare Fusion diinstal, di mana saya memiliki server Ubuntu 10,04 LTS. Mengandalkan terminal Mac dan SSH untuk hampir semua interaksi server saya

Setelah merusak instalasi Drupal, saya kembali ke snapshot sebelumnya dan tiba-tiba tidak dapat menjalankan perintah yang baru saja saya gunakan sebelumnya: sshfs -o idmap=user -o allow_other user@mac.home:/Users/<username>/Documents ~/mountpoint

Masalahnya adalah bahwa kunci tidak sinkron. Saya tidak tahu apakah saya benar-benar perlu melakukan ini pada host dan server saya, tetapi saya menghapus semua kunci lokal pada masing-masing dengan terlebih dahulu membuat cadangan file yang dikenal, kemudian mengedit file yang dikenal untuk menghapus entri. .
Di Mac, file ini terletak di: /Users/<username>/.ssh/known_hosts
Di Ubuntu, file ini terletak di:/home/<username>/.ssh/known_hosts

Jadi, untuk meringkas, semua dilakukan dari terminal Mac saya, setelah memulai server 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

Setelah SSH pertama masuk ke setiap sistem, SSH meminta saya untuk mengizinkan kunci RSA ditambahkan dan semua pekerjaan sesudahnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.