FTP через SSH туннель

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.

Следить за развитием событий можно через RSS ленту или почтовую рассылку.