fstab ile sshfs: bağlantı eş tarafından sıfırlandı


10

Dizüstü bilgisayarımın (Ubuntu 13.04) SSHFS üzerinden bilgisayarıma (Lubuntu 13.04) sabit diskine erişmesine izin vermeye çalışıyorum. Bağlanmak için RSA anahtarları kullanıyorum.

Ben terminalde bu yazın mükemmel çalışır:

sshfs my-PC:/a_folder /media/a_folder

Ancak dizüstü bilgisayarımı açtığımda otomatik olarak monte edilmesini istiyorum. Bu yüzden kendimi sigorta grubuna ekledim:

sudo adduser mynickname fuse

Ve fstab dosyama aşağıdaki satırı ekledim:

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

Dizüstü bilgisayarı önyüklediğimde, aygıt listesinde a_folder belirir, ancak takılı değildir. Nautilus üzerinden erişmeye çalıştığımda, şu hatayı görüntüler:

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

Denersem aynı hatayı alıyorum

mount /media/a_folder

bir terminalde.

Eğer denersem

sudo mount /media/a_folder

alırım

read: Connection reset by peer

Ben fstab girişinde bir seçenek olarak "allow_other" eklemeye çalıştı ve /etc/fuse.conf ilgili satır uncommented, ama hiçbir şey değişmedi.

"Mynickname" kullanıcısı / media / a_folder klasörünün sahibidir ve rwx izinlerine sahiptir.

İnternette oldukça benzer sorunları olan insanlar hakkında birçok konuya baktım, ancak şimdiye kadar hiçbir şey işe yaramadı. Genellikle insanlar yapamazlar bile

sshfs my-PC:/a_folder /media/a_folder

bir hata almadan, bu dizüstü bilgisayarımda iyi çalışıyor.

Herhangi bir fikir ve ipuçları büyük takdir edilecektir! Teşekkürler.

EDIT: Bu sorunu bir süre önce çözdüm, ancak bu yayını güncellemeyi unuttum. İşte benim fstab içinde ne var:

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

Hatırlamak için anahtar seçenek default_permissions oldu. Bilgisayarımda / a_folder / grubuna mynickname eklemek zorunda kaldım.

fstab  sshfs 

Yanıtlar:


8

Karşılaştığınız sorun, normal kullanıcınızın kimlik dosyanız için doğru ayarlara sahip olması ve root kullanıcısının hangi ssh anahtarını kullanacağına dair hiçbir fikri olmamasıdır.

Bağlanmaya çalışırken fstab'a hangi kimlik dosyasının / ssh anahtarının kullanılacağını söyleyerek bunu düzeltebilirsiniz:

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

Cevabınız için teşekkürler. Zaten IdentityFile seçeneği ile denedim, ama uid ve gid seçeneklerini belirtmedim, bu yüzden bunu deneyeceğim!

Teknik olarak, sudoher şey bir FUSE montajı için doğru şekilde ayarlanmışsa kullanmanıza gerek yoktur . Ayrıca, uid / gid ayarları yalnızca hangi kullanıcının sisteminizdeki dosyalar üzerinde haklara sahip olduğunu etkilemelidir.
earthmeLon

Bu yüzden uid, gid, IdentityFile, allow_other, tüm bu seçenekleri aynı anda denedim ve maalesef hala çalışmıyor. Yine de aynı hata.

Nasıl yazıldığına dair bir örnek yayınlamak ister misiniz? Genel anahtarınızı değil , özel anahtarınızı işaret ediyor olmalısınız .
earthmeLon

1
Yani her iki yöntem de işe yaramadı. Yine de aynı hata. Yapılandırma dosyası için doğru ana bilgisayarı belirterek denedim: kullanıcı, ana bilgisayar adı (hem IP hem de ad denedi), kimlik dosyası. Ama işe yaramadı. Bu yüzden şu an için yaptığım şey, başlangıç ​​uygulamalarında sshfs my-PC: / a_folder / media / a_folder komutunu eklemem. Fstab kullanmak kadar temiz değil, ama şimdilik yeterince iyi çalışıyor. Yardımınız ve önerileriniz için teşekkürler! Başka bir şey düşünüyorsanız, paylaşmaktan çekinmeyin, takdir edeceğim!

4

Gerçek hata ayıklama çıktısı almak için bağlantının her ikisini sshfs_debugve debugseçeneklerini eklemeniz gerekir :

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

Bununla size yardımcı olacak birçok hata ayıklama bilgisi alırsınız:

$ 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

Benim durumumda, makinemin sadece listelendiğini keşfettim .ssh/config, bu yüzden kök için çözülemezdi.

Ve BTW, uid ve gid'i ayarlamanız gerekir, çünkü idmap=usersadece bu durumda kök olan geçerli kullanıcı için çalışıyor gibi görünüyor.


3

Bu sorun, ssh ana bilgisayar anahtarı değiştiğinde de oluşabilir.

Sunucuya ssh (örneğin ssh username@hostIP) ile bağlanmayı deneyin . Aşağıdaki hata ortaya çıkarsa:

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

Eski anahtarı silmek için hata mesajındaki talimatları izleyin ve ssh üzerinden tekrar bağlanmayı deneyin. Hata artık görünmezse, sshfs bağlantısı çalışmalıdır.


"sunucuya ssh üzerinden bağlanmaya çalışın" Eğer dizini root olarak monte ediyorsanız bunu root olarak yaptığınızdan emin olun (otomatik sayım yapılırken olan budur). Bir kullanıcının known_hostsdosyası kök known_hostsdosyasından farklı olabilir .
Shelvacu

0

Tam açıklama: eski okul geek, ancak marka linux / açık kaynak dünyasında yeni şaplak

Öncelikle, hala şifre doğrulama kullanıyorum, çünkü henüz RSA anahtarlarıyla yeterince bilgili olmadım. Bu listenin zirvesine yaklaşıyor.

İlgili kurulum bilgileri: Ubuntu sunucusu 10.04 LTS'ye sahip olduğum VMWare Fusion yüklü bir MacBook Pro kullanma. Neredeyse tüm sunucu etkileşimlerim için Mac'in terminaline ve SSH'ye güvenmek

Bir Drupal yüklemesini başlattıktan sonra, önceki bir anlık görüntüye geri döndüm ve aniden daha önce anları kullandığım bir komutu yürütemedim: sshfs -o idmap=user -o allow_other user@mac.home:/Users/<username>/Documents ~/mountpoint

Sorun şu ki, anahtarlar senkronize değil. Bunu hem ana makinemde hem de sunucumda yapmam gerekip gerekmediğini bilmiyorum, ancak önce bilinen_hosts dosyasının bir yedeklemesini yaparak, ardından girişleri kaldırmak için bilinen_hosts dosyasını düzenleyerek tüm yerel anahtarları temizledim .
Mac'te bu dosya şurada bulundu: /Users/<username>/.ssh/known_hosts
Ubuntu'da, bu dosya şurada bulunur:/home/<username>/.ssh/known_hosts

Özetlemek gerekirse, hepsi Ubuntu sunucusunu başlattıktan sonra Mac terminalimden gerçekleştirildi:

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

Her sisteme ilk SSH bağlandığında, SSH, RSA anahtarlarının eklenmesine izin vermemi ve bundan sonra tüm çalışmaların yapılmasını istiyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.