Если вы знаете, что один из ваших компьютеров всегда включен, у вас также есть возможность использовать его в качестве ssh-прокси.
скажем, у вас есть настройка доменного имени для вашего внешнего IP-адреса (например, myhome.dyndns.com или что-то еще), что вы будете делать, это подключиться к одному компьютеру (скажем, raspberry всегда включен, и вы перенаправите порт с вашего маршрутизатора на это), ваши соединения ssh будут:
школа -> (роутер, здесь прозрачный) -> малина -> убунту или windows
теперь, в вашем ~ / .ssh / config в школе, добавьте строки:
Host ubuntu 192.168.1.51
Hostname ubuntu (change to match your setup)
User myraspberryuser (change it ;-) )
IdentityFile ~/.ssh/id_rsa (The path to your private key, on the school computer, better on an usb key if public computer)
ForwardAgent yes
RequestTTY yes
ProxyCommand ssh -W %h:%p %r@myhome.dyndns.com
Для подключения затем:
ssh-add ~/.ssh/id_rsa # to do only once per session
ssh myuser@ubuntu (login without password)
Теперь, если вы введете ssh ubuntu, компьютер сначала подключится к raspberry, а затем начнет сеанс ssh с компьютером ubuntu.
Я рекомендую вам, независимо от порта, который вы хотите перенаправить, отключить пароль в /etc/sshd.conf, чтобы разрешить вход только через ключ ssh. Таким образом, если вы настроите ключ на Rasberry и Ubuntu с параметром «ForwardAgent», вам нужно будет только разблокировать ключ, а затем пароль для подключения не требуется. Таким образом, даже если боты пытаются войти на ваш ssh, они никогда не смогут войти, так как вы запрещаете вход с паролем.
Бонус, это работает также с scp, scp foo ubuntu: / tmp / foo будет использовать ту же настройку без дополнительных параметров. Бонус 2, эта настройка не требует каких-либо изменений дома, если завтра вы и другой компьютер, просто скопируйте / вставьте код в вашу конфигурацию ssh, измените хост и ip, вот и все, не нужно открывать новый порт на маршрутизаторе