Монтирование удаленной файловой системы (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