24

Я хотел бы смонтировать удаленную файловую систему (A) с использованием SSHFS, но иногда у меня есть IP-адрес, доступ с которого не разрешен. Поэтому я планирую получить к нему доступ через другую машину (B) в этой сети. Нужно ли монтировать A на B, а затем монтировать B (и A) на моем локальном компьютере? Есть ли лучший способ сделать это?

Обновить

Просто чтобы уточнить процедуру:

Сначала я делаю туннель

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

А потом я монтирую удаленную файловую систему

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

Это правильно?

Как мне разрушить туннель, когда я закончу?

3 ответа3

13

Вы можете использовать опцию ssh_command sshfs чтобы добиться цели :

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

Размонтировать с обычным

fusermount -u /mnt

Извините, это на 7 лет позже ...

9

да туннелирование Вы подключаете машину B, создаете локальный туннель (-L) к SSHd-порту машины A, затем подключаете sshfs к localhost к порту вновь созданного туннеля.

0

Схема подключения:Your machine --> Host B --> Host A

В нашем решении будет использоваться Proxy Jump, представленный в OpenSSH 7.3, поэтому вам нужно проверить, что ваша версия новее:

ssh -V

Затем вам нужно правильно настроить ~/.ssh/config. Например, если MachineB доступен с паролем входа в систему из machineâ:

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}

Наконец, создайте точку монтирования и добавьте строку в /etc /fstab

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .