3 puan yazan GN⁺ 2023-09-06 | 1 yorum | WhatsApp'ta paylaş
  • SSHFS, SFTP kullanarak uzak dosya sistemlerini bağlamayı mümkün kılar; çoğu SSH sunucusu SFTP erişimini varsayılan olarak destekleyip etkinleştirdiği için sunucu tarafında ek işlem gerekmeden kullanılabilir
  • deadbeefsociety/sshfs bakım çatalı, SSHFS artık terk edilmiş durumda olmadığı için arşivlendi; kullanılması gereken sürüm libfuse/sshfs
  • SSHFS, başlıca Linux dağıtımlarında yer alır ve uzun yıllardır çeşitli sistemlerde üretimde kullanılmıştır; ancak şu anda düzenli olarak aktif katkı yapan kimse yoktur ve bilinen sorunlar bugtracker üzerinde yer alır
  • Mevcut bakımcı pull request'leri uygulamayı ve düzenli sürümler yayımlamayı sürdürüyor, ancak yüksek etkili sorunlar dışında geliştirme kapasitesi yok; pull request içermeyen hata raporları veya kritik olmayan sorunların yanıt alma olasılığı düşüktür
  • Temel çalıştırma biçimi sshfs [user@]hostname:[directory] mountpoint şeklindedir; normal kullanıcı olarak çalıştırılması önerilir ve mountpoint ilgili kullanıcıya ait olmalıdır
    • Kullanıcı adı belirtilmezse yerel kullanıcı adı kullanılır
    • Dizin belirtilmezse uzak ev dizini bağlanır
    • Parola gerekirse sshfs tarafından çalıştırılan ssh parola ister
  • -oport=PORT dahil çeşitli ssh seçenekleri belirtilebilir; bağ kaldırma için Linux'ta fusermount -u mountpoint, BSD ve macOS'ta umount mountpoint kullanılır
  • Derleme için libfuse 3.1.0 veya üzeri ya da libfuse3 uyumlu arayüz, geliştirme başlıklarıyla birlikte Glib, Meson 0.38 veya üzeri ve Ninja gereklidir; testleri çalıştırmak için py.test Python modülü gerekir

1 yorum

 
GN⁺ 2023-09-06
Hacker News yorumları
  • Kullanıcı alanında çalışan bir şey istiyorsanız ve Emacs sizin için uygunsa TRAMP, “Transparent Remote (file) Access, Multiple Protocol” var: https://www.gnu.org/software/tramp/
    MacBook Pro’dan sunucu dosyalarına erişirken sık kullanıyorum

    • TRAMP’in en iyi yanı, uzak sistemdeki bir dizine cd yaptıktan sonra, mevcut çalışma dizininden yerel makineye ya da başka bir uzak makineye dosyaları cp edebilmeniz; tersine, yerelden de mevcut uzak çalışma dizinine kopyalayabilmeniz
      TRAMP kullanmadan önce uzaktaki makineye SSH ile bağlanıyor, cd ve ls ile kopyalama konumunu buluyor, SSH oturumunu kapatıp dosyaları scp veya rsync ile taşıyor ve çoğu zaman yeniden SSH ile bağlanmam gerekiyordu
    • Bu arada Emacs özelliklerinin önemli bir kısmı, belki de çoğu ya da tamamı Tramp ile şeffaf biçimde çalışıyor. dired, eshell, magit de buna dahil
  • İlginç. sshfs’in her zaman OpenSSH’in bir parçası olduğunu sanırdım; insan her gün yeni bir şey öğreniyor
    Slackware’de kullanılan sshfs de terk edilmiş durumda görünüyor: https://github.com/libfuse/sshfs
    Bağlantıdaki alıntıya bakınca bu projenin o “sıradaki devralan” olup olmayacağını merak ediyorum

    If you would like to take over this project, you are welcome to do so. Please fork it and develop the fork for a while. Once there has been 6 months of reasonable activity, please contact Nikolaus@rath.org and I'll be happy to give you ownership of this repository or replace with a pointer to the fork.
    Bluetooth’ta olanlar gibi RHEL yeniden yapılanması yüzünden terk edilmiş olabilir mi diye de merak ediyorum

    • OpenSSH bakımcılarının üstlenmesi için gayet uygun görünüyor. Ben de bunun Linux’un temel SSH altyapısının bir parçası olduğunu düşünmüştüm
  • Not olarak, Mac’te yıllarca macFUSE + sshfs kullandıktan sonra artık yalnızca mükemmel Mountain Duck aracını kurup kullanıyorum. Finder ve bağlama noktaları üzerinden SFTP uç noktalarına erişebiliyorsunuz
    Çok iyi bir yazılım ve benim için vazgeçilmez

    • Kısa süre önce yeniden rsync.net müşterisi oldum; belgeleri incelerken Mac entegrasyonu için önerilen seçenek olarak hâlâ Fuse/sshfs’in yer aldığını görünce biraz şaşırdım: https://www.rsync.net/resources/howto/mac_sshfs.html
      Birkaç ay önce bu yüzden ExpanDrive/StrongSync’i denemiştim; Mountain Duck’ı ise şimdi ilk kez duydum. Cyberduck’ı seviyorum. Şimdi denemeyi düşünüyorum; eğer iyi çalışıyorsa başkaları için o sayfayı güncellerseniz iyi olur. Bunun dışında memnun bir müşteriyim
    • Kayıt düşmek gerekirse macOS’ta artık https://www.fuse-t.org/ var. Kernel extension olmadan çalışıyor; arka planda yerel bir NFS sunucusu başlatıp macOS’un ona bağlanması şeklinde işliyor
      sshfs uygulaması da https://github.com/macos-fuse-t/fuse-t/wiki#sample-filesyste... adresinde yer alıyor
    • Ben de çoğunlukla Mountain Duck kullanıyorum. Ancak VSCode’da Microsoft’un Remote SSH eklentisi, VM’lerde veya başka uzak makinelerdeki depolar üzerinde çalışırken çok yardımcı oluyor
      macOS’ta Libfuse/SSHFS birkaç yıldır kullanması epey zahmetli hale geldi; bu yüzden ben de Mountain Duck’a geçtim
  • sshfs’in artık bakımı yapılmıyor olması üzücü. Okulda, uzak hesaplama sunucusuna tüm Vim eklentilerimi kurmak zorunda kalmadan, çok sayıdaki Vim eklentimle kod düzenlemek için sshfs kullanırdım
    Sistemin beklediğimden çok daha sorunsuz çalışmasına şaşırmıştım

  • SFTP’nin iyi ama değeri yeterince bilinmeyen bir protokol olduğunu düşünüyorum. Dosya ağacını bir taraftan diğerine kopyalamaktansa iki yönlü yansıtmanın daha mantıklı olduğu durumlar var
    SSHFS kodunu fork edip inceledikten sonra ilgili kaynakları ve kişisel düşüncelerimi https://hackmd.io/@q/sftp-over-ws adresinde derleyip güncel tutuyorum

    • SFTP, FTP’ye göre büyük bir gelişme ama sunucu tarafında hâlâ gerçekleşmemiş çok fazla potansiyel var; bu yüzden yalnızca daha iyi istemciler yapmak sorunu çözmüyor
      Hem OpenSSH hem de GNU lsh sunucuları yalnızca eski protokol sürümlerini sunuyor. Muhtemelen v2. Bu eskilik bilinçli bir tercih: https://marc.info/?l=openssh-unix-dev&m=168488976013498&w=2
  • Teknoloji kombinasyonu biraz farklı ama bir süredir WireGuard üzerinde NFS’yi oldukça memnun kalarak kullanıyorum

    • TCP kanalı sıfırlandığında NFS yeniden bağlanmayı daha zarif biçimde ele alıyor; bu büyük bir avantaj
      Dosya sistemi özelliklerinin daha fazlası da uygulanmış olduğundan df çıktısı uzak dosya sisteminin kullanımını doğru yansıtıyor
      Ayrıca NFSv4, “delegations” sunarak dosyanın tam kontrolünü süresi dolan bir kira biçiminde istemciye verebiliyor. Modern NFS istemcilerinde kira süresini örtük olarak uzatan “polite delegations” da var
      SSHFS, minimum kurulumla “hızlı ve kabaca” mount etmek için çok kullanışlı
    • Ben ters yönde gittim. VPN altyapısı çok kararlı ama depolama yaklaşımına geçtim
      Çok basit bir DVFS depolama aracıyla dosyaları senkronize ettikten sonra geriye bakmadım. Farklı yerlerde birden çok kopya bulundurmayı seviyorum
    • Birkaç yıl önce sshfs’ten NFSv4 + WireGuard’a geçtim ve gayet iyi çalışıyor
  • Günümüzde sshfs işlevine ihtiyaç duyduğumda çoğunlukla rclone mount kullanıyorum. Performansı, kararlılığı ve önbellek seçenekleri daha iyi

    • Ancak rclone, dosyanın tamamını aktarmadan dosyanın ortasına yazamıyor. En büyük sorun bu
      sshfs’te de aynı sınırlama olabilir
  • Ne yazık ki bu fork pek aktif görünmüyor. Son commit mart ayında, PR ve issue hareketliliği de neredeyse yok
    Buna bel bağlamazdım

    • Kararlı bir projeyse ne kadar hareketlilik beklenir ki?
    • “Aktiflik”in JavaScript tarzı tanımı, düzgün çalışan bir şeyi kurcalayıp bozmaktır
  • Nautilus, yani Ubuntu’nun dosya gezgini, SFTP klasörü bağlamayı destekliyor. İçeride gvfs kullanıyor gibi görünüyor
    SFTP dosya aktarımı için SSH bağlantısı kullandığından, SSHFS ile karşılaştırınca arayüz açısından bir fark görmedim

    • Nautilus GUI’sinde SFTP uç noktasına göz atabiliyorsun; peki aynı zamanda terminalden kullanılabilecek bir dosya sistemi bağlama noktası da oluşturuyor mu?
      Pek hatırlamıyorum
  • Mac OS X’te macFUSE/osxfuse ile birlikte rclone ya da sshfs deneyen var mı?

    • Macfuse ile tüm sunucularımı yerel klasör gibi bağlayıp kullanıyorum. İyi çalışıyor
      Her sunucu için küçük bir betiğim var. Örneğin mount_fooserver.sh:
      umount -f ~/mounts/fooserver
      sshfs -o kill_on_unmount,reconnect,allow_other,defer_permissions,direct_io username@server:/ ~/mounts/fooserver -ovolname=foo
    • M1’de macFUSE ve sshfs kullanarak ofisteki Linux kutusunun sürücüsünü bağlıyorum. Genel olarak fena değil ama kendine özgü gıcırtıları var
      Kurulum süreci epey macera gibiydi ve birkaç kez “doğru olan bu mu?” diye düşündüm, ama devam edince düzgün çalıştı
    • Yukarıdaki en üst düzey yorumuma bakabilirsin. Cevap “Mountain Duck”
    • Monterey, M1’de sshfs çalışıyor ama biraz yavaş