Uzak SSHFS'yi ara makine üzerinden nasıl monte edebilirim? Tünel?


26

SSHFS kullanarak uzak bir dosya sistemi (A) kurmak istiyorum, ancak bazen erişimine izin verilmeyen IP adresim var. Yani benim planım o ağdaki başka bir makine (B) üzerinden erişmek. A'yı B'ye ve sonra B'yi (ve A) yerel bilgisayarıma takmam gerekir mi? Bunu yapmanın daha iyi bir yolu var mı?

Güncelleştirme

Sadece prosedürü açıklığa kavuşturmak için:

İlk önce bir tünel yapıyorum

ssh -f user@machineB -L MYPORT:machineA:22 -N

Sonra uzaktaki dosya sistemini bağlarım

sshfs -p MYPORT user@127.0.0.1:/myremotepath /mylocalpath

Doğru mu?

İşim bittiğinde tüneli nasıl tahrip edebilirim?


1
tüneli kurmanın daha iyi bir yolu ssh user @ machineB -L 2222: machineA: 22 -N kullanarak GNU ekran penceresinden B ile bağlantı kurmaktır, böylece ^ C
edk ile

Yanıtlar:


9

evet tünel açma. Makineyi B bağlar, makinenin A 'nın SSHd portuna yerel tünel (-L) yaratır, daha sonra yeni oluşturulan tünelin portuna sshfs ile localhost' a dönersiniz .


Aşağıdaki komut bunu yapmanın doğru yolu mu? ssh -f user@machineB -L 25:machineA:25 -N
Andrei

1
Makine A. 25 numaralı bağlantı noktasına sshd dinleme varsa evet o zaman sadece gerekecek sshfs -p 25 user@127.0.0.1: / yol / localpath
edk

1
Aha, varsayılan ssh kurulumu için ihtiyacım var ssh -f user@machineB -L 22:machineA:22 -N, değil mi?
Andrei

16

Sen seçeneğini kullanabilirsiniz ssh_commandait sshfshile yapmak:

sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'

Her zamanki gibi unmount

fusermount -u /mnt

Üzgünüm, bu 7 yıl gecikti ...


5
Openssh 1.1'deki yeni -J seçeneğiyle birlikte: sshfs ma: / mnt -o ssh_command = 'ssh -J mb'
Ohad Rubin

0

Bağlantı şemanız: Your machine --> Host B --> Host A

Çözümümüz, OpenSSH 7.3'te tanıtılan Proxy Jump'ı kullanacağından, sürümünüzün daha yeni olduğunu kontrol etmeniz gerekir:

ssh -V

O zaman ~ / .ssh / config dosyanızı doğru şekilde yapılandırmanız gerekir . Örneğin, makine B , makine A'dan bir şifre girişi ile mevcutsa :

machineB
    HostName {machineB ip address}
    User {machineB username}
    Port {machineB port-number}
    IdentityFile ~/.ssh/{machineB private ssh key}

machineA
    ProxyJump machineB
    Hostname {machineA ip address, maybe in local network}
    User {machineA username}
    Port {machineA port-number}

Son olarak, bağlama noktanızı oluşturun ve / etc / fstab dosyasına bir satır ekleyin.

machineB:{machineB mount path}  {your local mountpoint}  fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0

Bunun sadece kullanmaya karşı herhangi bir faydası var mı -o ssh_command="ssh -J machineB"?
clemisch
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.