В принципе, как мне это сделать?
Я бы хотел подключиться к домашнему компьютеру с работы, но мой Интернет проходит через сеть моего многоквартирного дома, поэтому у меня нет статического IP-адреса, который я привык иметь.
Как мне получить доступ к моему домашнему компьютеру через SSH (я буду использовать Putty на работе, если это имеет значение), если у моего домашнего компьютера нет статического IP-адреса?
Я думаю, вы можете изучить службу, которая может предоставить вам доменное имя DNS для вашего домашнего компьютера. Вот что я использовал с большим успехом на протяжении многих лет: DynDNS.com
По сути, они используют службу, работающую на вашем компьютере, которая будет обновлять DNS-запись при изменении IP-адреса вашего домашнего компьютера / маршрутизатора.
самое быстрое и чистое решение этой проблемы, чтобы доступ к оболочке SSH на ваш компьютер без IP Public с рабочего стола или просто смартфона (например, Android), установив на свой компьютер robotito, который хочет получить удаленный доступ к SSH.
Я сделал сценарий (протестирован на моей raspbian OS в Raspberry Pi), чтобы вы могли легко установить robotito на Raspberry Pi, Debian или Ubuntu Box (дистрибутив пакета debian). вот шаги, чтобы сделать ваш Linux-бокс удаленным:
Откройте команду оболочки или вы можете назвать ее терминалом, перейдите в свою домашнюю папку, загрузите скрипт установщика с помощью команды:
$wget https://opengateway.googlecode.com/files/robotito
после этого запустите скрипт, введя команду:
$sudo ./robotito
а затем вы можете отредактировать файл credentials.rb из папки конфигурации, если robotito использует вашу учетную запись gtalk, и сохранить его, нажав ctrl + x и y. По умолчанию используется редактор nano.
запуск robotito из папки robotito по команде
$cd robotito
$./jabbershd start
Теперь, когда это сделано, вы можете использовать ssh из любого клиента Google Talk. Не забудьте добавить учетную запись robotito gtalk в свою учетную запись Google Talk и протестировать ее, общаясь друг с другом перед использованием учетной записи.
Вы не можете получить доступ к своему компьютеру, потому что вы находитесь за какой-то системой NAT. Другими словами, ваш компьютер находится в частной внутренней сети и NAT подключен через устройство NAT здания, находящееся под их контролем, поэтому в этом смысле нет простого способа вернуться в нее.
Один из способов - создать обратный SSH-туннель, инициированный вашей рабочей станцией, исходящий через Интернет и предназначенный для демона ssh, к которому вы можете подключиться из дома.
Как только это будет установлено, вы можете использовать ssh на localhost, на котором вы настроили обратный туннель (который будет перенаправлен через обратный туннель) в вашу систему с хоста ssh, к которому вы подключились, через обратный туннель.
Надеюсь это поможет?
Впоследствии вы можете захотеть написать небольшой скрипт для cronjob, чтобы поддерживать это соединение, повторно подключаться при отключении и т. Д. И правильно использовать ssh-agent для соединений без пароля - при правильной настройке парольная фраза должна быть только ставить один раз (если что).
В вашей локальной сети настройте маршрутизатор на переадресацию требуемых портов на IP / хост вашего локального компьютера. Затем получите службу DynDNS, чтобы получить имя хоста для вашего маршрутизатора. Если внешний IP-адрес маршрутизатора динамический, используйте ddclient
для автоматического обновления при назначении новых адресов.
Вы можете попробовать использовать что-то вроде STUN или какой-нибудь другой инструмент NAT.
Возможно, вам будет проще использовать такую службу, как Hamachi или другие решения vpn с нулевой конфигурацией. Присоедините две машины к одной сети vpn и подключите ssh к ее IP-адресу hamachi.