Монтирование удаленной файловой системы (sshfs) через промежуточный компьютер

Ситуация:

  • Я работаю с machine1, где у меня есть root-доступ. С машины 1 я могу получить доступ к машине 2 (где я пользователь без привилегий) через ssh.
  • machine3 (также пользователь без прав) не доступен напрямую с machine1. Мне нужно использовать SSH-соединение с machine2 для доступа к machine3.
  • Вкратце: машина1 может подключиться к машине2, но не к машине3. machine2 может ssh в machine3.

Что я хочу сделать:

  • Я хочу использовать sshfs для монтирования на machine1 локального (собственного) каталога, расположенного на machine3.

Осложнения:

  • sshfs недоступен на машине2.

Как это может быть сделано?

2 ответа

Решение

Вы можете использовать ssh для переадресации порта 22 с machine3 на machine1 через machine2, например

user1@machine1:$ ssh -L 2222:machine3:22 user2@machine2

После этого настройте sshfs на machine1 для использования localhost:2222 порт (на второй вкладке терминала):

user1@machine1:$ sshfs user3@localhost:/some/machine3/dir /some/local/dir -p 2222

Теоретически, смонтировать машину 3 на машине 2 через sshfs, затем смонтировать каталог sshfs машины 2 на машине 1.

Как пользователь без привилегий, вы можете создавать папки только в своем домашнем каталоге.

Теоретически, это должно работать (но быть медленным):

machine2:

mkdir /home/<username>/sshfs
sshfs <machine3_username>@machine3:/ /home/<username>/sshfs

machine1:

mkdir -p /mnt/sshfs
sshfs <machine2_username>@machine2:/home/<username>/sshfs /mnt/sshfs
Другие вопросы по тегам