sshfs her zaman fstab'da şifre mi istiyor?


20

Aşağıdaki satırı ile / etc / fstab bir sshfs mount girmeye çalışıyorum:

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

Böylece bu birim önyüklemeye monte edilir. Önyükleme yaptıktan sonra hiçbir şey olmuyor, ancak sudo mount -a komutunu kullandığımda her zaman parola isteniyor. SSH Anahtarlarını ayarladım ve 192.168.0.2'de bilgisayara aktardım ve parola olmadan normal ssh oturumu açabilirim. Birimin önyükleme sırasında otomatik olarak monte edilebilmesi için sigortanın şifremi istemesini nasıl durdurabilirim?

Hiç yardımcı olmazsa, Arch Linux çalıştıran bir dizüstü bilgisayardan Debian çalıştıran bir ev sunucusuna bağlanmaya çalışıyorum. Teşekkürler

Yanıtlar:


13

Anahtar tabanlı kimlik doğrulama yalnızca sshişlem anahtarınızı bulabilirse kullanılabilir. Muhtemelen ana dizininizde anahtarınız vardır; ama hiçbir zaman sshfsnereden anahtar arayacağınızı söylemediniz . Önyükleme zamanında roottüm dosya sistemlerini monte eder, bu nedenle anahtarın içinde /root/.sshveya referansta olması gerekir /root/.ssh/config.

Oturum açtıktan sonra ve kendi kullanıcı olarak dosya sistemini bağlamanızı tavsiye ederim. Bunu, oturum açtığınızda yürütülen bir komut dosyasına ekleyin:

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

Aradığınız bir takma adı homeserverekleyin ~/.ssh/config:

Host homeserver
HostName 192.168.0.2
User oli

Ahh, bunu yapmanın daha iyi bir yolu, giriş betiğime koymayı düşünmemiştim. Teşekkürler!
semiserious

~Montaj noktasında kullanırken dikkatli olun . Panelde terminal yerine komutu çalıştırmak için bir başlatıcı simgesi kullanıyorsanız, ~olarak değerlendirilmeyebilir /home/ve komut başarısız olur.
Nick

@Nick GUI kullanıyorsanız, otomatik saymaya adanmış bir aracı olabilir. Cevabımı takip ederseniz, iki komutu bir kabuk betiğine koymanız gerekir; başlatıcı simgesi bu komut dosyasını çalıştırır.
Gilles 'SO- kötü olmayı bırak'

10

Standart kullanıcı olarak aşağıdaki sözdizimini kullanarak sshfs fstab üzerinden Ubuntu 14.04 ile bağlayabildim (CAPS'taki herhangi bir şeyin doldurmanız için bir değişken olduğunu unutmayın):

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

Bu, burada bulunan bilgilerin bir birleşimidir /superuser/669287/automount-sshfs-using-fstab-without-mount-a ve buradan delay_connect ekleyerek /ubuntu/ 326977 / sshfs-vs-fstab-yapılandırmasına rağmen önyüklemede otomatik olarak monte edilmiyor .

Bu öğreticiyi USER_ID ve USER_GID'imi almak için kullandım: https://kb.iu.edu/data/adwf.html

Unix'te bir kullanıcının UID'sini veya GID'sini bulmak için id komutunu kullanın. Belirli bir kullanıcının UID'sini bulmak için Unix komut istemine şunu girin:

id -u username

Kullanıcı adını uygun kullanıcının kullanıcı adıyla değiştirin. Bir kullanıcının GID'sini bulmak için Unix komut istemine şunu girin:

id -g username

Ayrıca, tam bir eğitim istiyorsanız, https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04/ adresinde yayınlanacaktır.


Bu bağlantı: variux.com/blog/?p=161 artık çalışmıyor ...
Christian Casutt

@ChristianMuggli yorumunuz için teşekkür ederiz. Öğretici adresinin tamamını güncelledim. Ancak öğreticiyi uzun zamandır test etmedim. variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04
variuxDavid

5

Ben de aynı problemi yaşadım.

Daha önce ssh-keygenve sonra ssh anahtarlarını ayarlamıştımssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.100

ssh bana bir şifre sormadan iyi çalıştı, bu yüzden sshfs neden hala şifre istediğini karıştı ...

Demek ki,

ssh root@192.168.0.100 

iyi çalıştı, ancak sshfs ben yazarken hala bir şifre istedi

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

Gilles'in açıkladığı gibi, sshfsgerekli anahtarları kök dizinde arıyordu.

Bu nedenle, sadece id_rsa ve id_rsa.pub dosyalarını ev klasörümün gizli .ssh klasöründen kökün .ssh klasörüne kopyalayarak çözdüm yani

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

Sonra, aşağıdakileri yazmak beni bir şifre için rahatsız etmeden çalıştı:

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

Güvenlik açısından bu gerçekten çok kötü. Kök için ayrı bir anahtar kümesi daha iyi oluşturun ve bunu yetkili_anahtarlara da ekleyin. Sen gerektiğini asla etrafında özel anahtarlar kopyalayın.
Christian Wolf

3

Parola olmadan önyükleme yapmasını istiyorsanız, parola olmadan genel / özel ssh anahtarları oluşturmanız gerekir. Tavsiye edilmez, ancak en azından bir chmod 400kök kullanıcı olarak bu dosyaları koruyabilirsiniz .

Bundan sonra, her zamanki gibi, ortak anahtarı bağlama noktasına kopyalamanız gerekir:

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

Ve sshfs'ye bu anahtarı kullanmasını söylemeniz gerekir.

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
Bunun yerine @TomHale ,SSHOPT='IdentityFile /path/to/private/key'sadece,IdentityFile /path/to/private/key
pulkitsinghal

2

Debian 8.2'de benim için mükemmel bir şekilde aşağıdaki satırı ekleyerek çalışır 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

Ana bilgisayar adı, uzak sunucu (bağlanılacak klasör) kullanıcısının yerel ve uzaktan aynı olduğunu gösterir. (Daha kolay)

Kullanıcının ssh anahtarını yerel olarak oluşturduğunuzdan ve anahtarı uzak sunucuya (ana bilgisayar adı) kopyalamak için ssh-keygenkullandığınızdan emin olun ssh-copy-id.

Sen bulabilirsiniz user_idve group_idyerel sunucuda kullanıcı için /etc/passwd.

Ayrıca kullanıcının klasörde okuma / yazma izinlerine sahip olduğundan emin olun path/to/localmountpoint.


2

Aslında, password_stdin seçeneğini kullanarak SSHFS'yi başlangıçta ortak anahtar olmadan bağlayabilirsiniz, ancak fstab ile bağlayamazsınız.

İhtiyacınız olan küçük bir komut dosyası ve cron.

Açık anahtarın her zaman daha iyi bir seçim olduğunu lütfen unutmayın. Ancak bazen ortak anahtarlar işe yaramaz (bu sorunu kendim birkaç kez yaşadım). Lütfen komut dosyasının parolayı açıkça içereceğini unutmayın. Bu nedenle, yalnızca kökün bu dosyaya izin verdiğinden emin olmalısınız!

Komut dosyası şu şekilde görünebilir (/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

Bunu başlangıçta çalıştırmak için root olarak crontab'ı kullanabilir ve şu satıra girebilirsiniz:

@reboot /root/automount.sh

Yukarıda belirtildiği gibi, düz metin parola içerdiğinden kesinlikle kimsenin dosyayı okuyamayacağından emin olmalısınız!

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

Şimdiye kadar, her yeniden başlatmadan sonra sisteminiz SSHFS'yi kimlik bilgilerini kullanarak otomatik olarak bağlayacaktır.


0

Aynı sorun vardı. Sonunda, tipin basit sigortaya ayarlanmasına veya (daha büyük olasılıkla) kesme seçeneklerinin aşağıdakilere ayarlanmasına yardımcı oldu:

fuse reconnect,idmap=user,allow_other,default_permissions

sonunda benim için çalışan


0

Anahtarları desteklemeyen bir sunucuya bağlanmaya çalışıyorsanız ve yine de otomatik olmasını istiyorsanız, sshpassşifrenizi sizin için sshfsve hatta sizin için yazmak için kullanabilirsiniz fstab.

Örneğin, şuna benzer bir şey koyarsanız /etc/fstab:

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

Ardından şifreyi, aşağıda belirtilen dosya adına girin /etc/fstab:

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

Yüklediğinizden emin olun sshpass:

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

O zaman çalışması gerekir:

mount /mnt/here

sshAnahtarını onaylamak için önce sunucuya bir kez ihtiyacınız olabilir , ancak bundan sonra manuel etkileşim olmadan çalışmalı ve içindeki autobayrak fstab, parolayı manuel olarak girmeye gerek kalmadan önyükleme zamanında monte edilmelidir.

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.