Переброс портов средствами SSH
Иногда хочется пользоваться, к примеру своим Email сервером, а корпоративная политика местного IT отдела строго настрого такое запрещает. Тем не менее, очень часто остаётся открытым 22й порт, через который можно проложить шифрованный канал через тернии к звёздам.
Чтобы усложнить реализацию подобных махинаций, часто бывает, что время жизни коннекта к такому порту - строго ограничено. В таких случаях на помощь придет программа autossh.
Чтобы упростить ей задачу, потребуется создать ключ, по которому сервер SSH будет нас узнавать.
- cd ~/.ssh
- ssh-keygen -t rsa
На все вопросы отвечаем клавишей Enter.
Содержимое полученного файла id_rsa.pub нужно положить на сервер в файл ~/.ssh/authorized_keys.
Теперь можно запускать саму autossh. Мой конечный вариант выглядит вот так:
Давайте разберём команду.
Обёртка su -c '...' abagrintsev - просто запускает от имени abagrintsev фоновую программу autossh. Очень помогает, в случаях, если запускаете конструкцию из /etc/rc.local (чтобы пользоваться удалёнными сервисами сразу после старта компьютера).
-f - выполняться в фоновом режиме
-N - пытаться пересоединиться после разрыва
-L 2555:localhost:25 - занять на ЛОКАЛЬНОЙ машине порт 2555, обращаясь при этом на УДАЛЁННОЙ машине к 25-му порту.
sb0y@bagrintsev.me - sb0y - это имя пользователя, bagrintsev.me - удалённая машина, к которой хотим присоединиться.