Sshfs kullanarak otomatik montaj nasıl yapılır?


14

Benim ubuntu pc ssh ubuntu dizini monte etmek için aşağıdaki komutu kullanıyorum.

sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

Sorum şu: Masaüstümde bunun için bir komut dosyası oluşturabilir miyim, burada her zaman el ile komut yazmadan sürücüyü bağlamanız gerektiğinde bu komut dosyasını çift tıklatabilir ve çalıştırabilirim.

Yanıtlar:


15

Bir başlatıcı oluşturabilir ve .desktop-dosyasını oraya sürükleyip bırakarak başlatıcı çubuğunuza ekleyebilirsiniz :

    #!/usr/bin/env xdg-open

    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon[en_US]=nautilus
    Name[en_US]=Connect to xy
    Exec=shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx
    #OR: to mount and than open in nautilus (note the '/dir' where ':dir' used to be)
    #Exec=nautilus sftp://user@192.xx.xx.xx.xx/dir/dir
    Comment[en_US]=Connect to xy via ssh
    Name=Connect to xy
    Comment=Connect to xy via ssh
    Icon=nautilus

Öneri - daha az çalışma:

Daha az çalışma (= otomatik bağlantı) ve grafik kullanıcı arayüzü istiyorsanız, Gigolo'ya göz atmak isteyebilirsiniz Jigolo yükle. Yer imi eklenmiş dosya sistemi mevcut olduğunda bir yer imini otomatik olarak monte etme özelliğine sahiptir. Bunu kontrol etmek isteyebilirsiniz.

sudo apt-get install gigolo   # or use the install link above

Koş gigolo. Tercihlerde, otomatik başlatmaya ve başka bir seçenek olarak tepsi simgesini etkinleştiren bir seçenek vardır. Her ikisini de kontrol edin. Ardından yer işaretinizi ekleyin.

İşte bir ekran görüntüsü:

resim açıklamasını buraya girin

Kabuk yolu

Başka bir çözüm, crontab'ınıza aşağıdaki satırı koymak olacaktır ( /etc/crontabsudo ayrıcalıklarıyla düzenleyin ):

@reboot sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

Ancak, komut çalıştırıldığında Ubuntu'nun şifre yöneticisi bulunmadığından, söz konusu ssh sunucusuyla (veya benzer bir kimlik doğrulama yöntemiyle) kimlik doğrulaması yapmak için şifresiz bir özel / ortak anahtar çifti kullanmanız gerekir. Bu onu her yeniden başlatmaya bağlar.

Yine başka bir çözüm /etc/fstab(Ubuntu-Sürümünüzün bu seçeneği sunması şartıyla) düzenlemek olacaktır .


1
Jigolo kullanamam. Coz Ana klasörümde belirli bir montaj noktası kullanmak istiyorum. İlk çözümünüz iyi görünüyor. Ancak dosya adlandırma konusunda net değilim. ".Desktop-file" verdiniz Dosya adı veya uzantısının olması gerekir. Lütfen dosya adlandırma konusunda bana daha fazla örnek verin. Sonra deneyebilirim.
BlueBird

Bu uzantı. Ubuntu'daki tüm başlatıcılar ".desktop" ile biter. Boş bir dosya oluşturun. Yukarıda gönderdiğim metni kopyalayın. "Name =" ifadesinin arkasındaki metni size uygun olanlarla değiştirin ve "Exec =" ifadesinin arkasındaki metindeki gerçek yolları değiştirin. Sonra "connect.desktop" veya "mountxy.desktop" olarak kaydedin (örneğin). Dosyayı kaydettikten sonra başlatıcı panelinize veya istediğiniz yere sürükleyip bırakın.
con-f-use

Harika!! İşe yaradı.
BlueBird

8
OMG ... bir program için şimdiye kadarki en kötü isim.
Lekensteyn

Görünüşe göre artık otomatik başlatma için jigolo ekleme seçeneği yok, bu yüzden bunu kendiniz yapmanız gerekecek. Çalıştır gnome-session-propertiesve /usr/bin/gigolokomut ekle . Bir bağlama noktası seçmek mümkün değildir, ancak ana dizininize (ile ln -s) sembolik bir bağlantı oluşturabilirsiniz . Orijinal bağlama noktasını, dosya yöneticisinde bir klasörü sağ tıklatıp seçerek bulabilirsiniz Open in Local Terminal.
Seppo Enarvi

4

Bu forum iş parçacığı bana tam olarak ne yapmak istediğinizi gösteren bir otomatik SSHFS oluşturma yöntemi gösterir.


İş parçacığı oldukça eskidir ve ağa bağlı montaj eklemek için şimdi x-systemdve _netdevseçenekleri kullanabiliriz .
Turgon

3

Bunu bir kabuk komut dosyasına yazabilir ve masaüstünde bunun için bir başlatıcı oluşturabilirsiniz.

Örneğin mountssh.sh:

#!/bin/bash
shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

emin olun chmod +x mountssh.shve sonra tıklayın yürütmek

Alternatif olarak, masaüstüne sağ tıklayıp, GVFS yoluyla monte ve URL parametresi olan bir başlatıcısı yaratarak yapabilirsiniz: ssh://user@192.xx.xx.xx.xx/dir/dir. Varsayılan olarak bağlanır ~/.gvfs/.... /home/username/mount/xxxİle sopa istiyorsanız , gvfs birinden buna sembolik bağlantı oluşturabilirsiniz.


Masaüstümde "mount-192.168.1.5.sh" dosyasını oluşturdum. Çift tıkladığımda gedit ile açılır.
BlueBird

Bu sh dosyasını herhangi bir yerde yürütülebilir ayrıcalıklarla oluşturmanız ve masaüstünüzde bu .sh dosyasını işaret eden bir başlatıcı oluşturmanız gerekir.
Iradrian

2

Hatta bir adım ileri gidebilir ve autof'lerin montajı sizin yerinize halletmesini sağlayabilirsiniz. Autofs, SSH ortak anahtar kimlik doğrulaması ile özellikle iyi çalışmadığından ( süper kullanıcı için şifresiz bir anahtar çifti oluşturmak istemiyorsanız ), kullanıcının SSH anahtarlarını, ssh-agent ve anahtarlığını kullanmanıza izin veren araçlar vardır:

  • autosshfs : kullanıcının SSH yapılandırmasını kullanan kullanıcı başına SSHFS otomatik sayısı
  • sigorta : FUSE ile birlikte uygulanan bir otomatik sayaç

0

Bir klasörü tam olarak aynı şekilde bağlarım, yaptığım, .shkomutu içeren bir dosyaya işaret eden özel bir başlatıcı oluşturmaktı . Dosyanın yürütme iznine sahip olduğundan emin olun ve hazırsınız.

Başlatıcıyı tıklıyorum:

resim açıklamasını buraya girin


0

Otomatik olarak ssh dizinini bağlamak için cron kullanmaya çalıştım, ancak bir hata söyleyerek neden oluyor Network is unreachable. Çünkü cron işi yürütme ip bağlantıları kurmak için çok erken. Komuttan önce uyku modunu ekledikten sonra sshfsssh dizinini başarıyla bağlar.

sleep 5 && sshfs ......

Ben de bu senaryoyu ihtiyacımı karşılamak için yaptım.

#! /bin/sh
while true
do 
    ping -c1 -w1 ssh_server_ip > /dev/null && break
done
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 sshname:/mountpath /localmountpath
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.