ya@inner.host:~$ ssh -f -N -R 2345:inner.host:22 user@outer.hostпроцесс будет висеть в бэкграунде. можно разлогиниваться. главное, машину не выключать.
пользоваться так:
user@outer.host:~$ ssh -p 2345 ya@localhostвсе. вот и вся инструкция. дальше — лишь пояснения и дополнения.
ya@localhost's password: — вбиваем пароль для ya@inner.host и попадаем на inner.host
смысл обозначений:
inner.host — машина за nat-ом
ya — ваша учетка на этом inner.host-е.
outer.host — машина, имеющая внешний ip
user — ваша учетка на этом outer.host-е.
p.s. кусочек «inner.host:22» — это способ достучаться до собственного sshd непосредственно с inner.host-а. если sshd слушает на порту 1000 — «inner.host:1000».
кусочек «inner.host:22» вполне можно заменить и на «localhost:22», и на «127.0.0.1:22».
p.p.s. на машине inner.host можно поставить «сторожа», присматривающего за процессом ssh. это потребует настройки беспарольной аутентификации (описана в сети многократно, поэтому опускаю).
ya@inner.host:~$ crontab -eи добавляем пару строк:
C='ssh -f -N -R 2345:inner.host:22 user@outer.host'проверка на «живость» будет происходить каждые 10 минут.
*/10 * * * * pgrep -f "$C" &>/dev/null || $C