FTP через SSH туннель
Posted on 2010-05-30Понадобилось сегодня разобраться с сайтом заказчика, доступ к которому есть только по FTP, причём только из нашей офисной подсети. Вроде тривиальная задача: ssh до любой серверной машины и использовать mc в качестве ftp клиента. Проблемы старые: непривычные настройки vim, проблемы с кодировками, да и вообще mc для чего-либо, кроме выборочного массового копирования файлов неудобно.
Подключился через свой скрипт afuse, использующий curlftpfs. Параметры
такие:
curlftpfs-tunnel -o user=asd:xyz ftp.example.com
curlftpfs-tunnel — это обёртка для curlftpfs, которая запускает туннель.
Выглядит так:
#!/bin/sh
ssh -f -D 12345 example.com tail -f /dev/null
/usr/bin/curlftpfs -o proxy=127.0.0.1:12345,socks5 $*
Ключ -f для ssh заставляет его работать фоном, а команда tail заставляет
соединение держаться вечно. Это нужно потому, что curlftpfs подключается и
отключается по мере необходимости, а при первом же закрытии соединения
закроется и туннель, в результате папка будет примонтирована, но будет пуста.
Ищу решение для этой проблемы.
PS: vim при сохранении файлов, открытых через curlftpfs, ругается на
невозможность выполнить fsync. Это решается командой set nofsync, которую
можно добавить в ~/.vimrc.