SSH к домашним компьютерам

У меня есть несколько машин дома, что я хотел бы получить доступ из школы с помощью SSH и VNC. Чтобы сделать это, я дал им статического дюйм/с:

  • 192.168.1.50: Windows
  • 192.168.1.51: Ubuntu
  • 192.168.1.52: Raspberry Pi / Raspbian

Я знаю, что SSH использует порт 22, таким образом, я могу передать этот порт 192.168.1.51:22 на моем маршрутизаторе, но этот путь я не смогу к SSH к моему Raspberry Pi. Есть ли какой-либо способ, которым я мог настроить это, чтобы смочь получить доступ к обеим машинам?

21
задан 20 September 2016 в 10:06

5 ответов

Если у Вас есть IPv6, Вам даже не нужно перенаправление портов! Просто получите свой постоянный адрес IPv6 (на основе Вашего MAC-адреса, таким образом, он, как гарантируют, останется таким же, если Ваш ISP не будет знать, как IPv6 работает), и используйте это для туннелирования в. Поскольку Ваш адрес IPv6 общедоступен и позволяет миру получать доступ к Вам, не имея необходимость проходить Ваш локальный NAT, Вы не должны потрудиться включать перенаправление портов где угодно. Это будет "просто работать".

Обратите внимание, однако, что IPv6 действительно все еще не поддерживается глобально, и и Ваше домашнее интернет-соединение и удаленное интернет-соединение должны иметь полностью рабочий IPv6, чтобы сделать это.

Однако, если Вы похожи на большинство людей и только имеете IPv4, существует все еще путь! Некоторые маршрутизаторы позволяют Вам передавать определенные исходные порты определенным целевым портам, как так:

enter image description here

В этом примере, порте 22 передается непосредственно моей машине sheepdog, в то время как порт 292 передается порту 22 на coyote.

Наконец, если Ваш маршрутизатор не имеет этой функции, можно просто изменить порт, поскольку SSH не ограничен просто работой порта 22. Можно установить его на что-либо, что Вы хотите (это не используется).

В /etc/ssh/sshd_config (Вы должны базироваться для редактирования, таким образом, sudo nano /etc/ssh/sshd_config), существует строка наверху файла:

# What ports, IPs and protocols we listen for
Port 22

Измените это на то, что Вы хотите:

# What ports, IPs and protocols we listen for
Port 2992

Перезапустите сервер SSH с sudo service ssh restart, и передайте порт на маршрутизаторе.


Однако для этого варианта использования, я рассмотрел бы, являются ли туннели SSH правильным поступком. Возможно, необходимо ли настроить выделенный сервер VPN в домашней сети? Это позволит Вам получать доступ к своей всей домашней сети отовсюду, если у Вас есть надлежащие учетные данные безопасности, необходимые VPN. Кроме того, существует немного меньше служебное с VPN; необходимо было бы обычно только передать один порт для одной машины.

32
ответ дан 23 November 2019 в 01:38

Простой способ решить эту проблему состоит в том, чтобы отобразить различные порты от Вашего маршрутизатора до порта 22 из Ваших машин. Например, у Вас могут быть следующие настройки в Вашем маршрутизаторе (предполагающий, что Ваш маршрутизатор имеет IP 1.2.3.4)

1. 1.2.3.4:22   --> ubuntu:22
2. 1.2.3.4:8888 --> raspberrypi:22
3. 1.2.3.4:9999 --> windows:22 (or some other port)

Затем, когда Вы используете ssh, указываете порт, Вы хотите использовать путем ввода

$ ssh <username>@<router ip> -p <your port>

Теперь, необходимо смочь соединиться со всеми машинами.

19
ответ дан 23 November 2019 в 01:38

Я делаю это - я оставляю на виду rpi и включенный непосредственно в маршрутизатор все время (так как является самым дешевым работать), и просто ssh в него, затем возвратитесь от него до других - никогда не требуется много внимания.

Это также возможно к VNC/RDP GUI по каналу ssh, виду забавы, или передайте порт, который позволяет Вам просмотреть к серверу на Вашем настольном компьютере при сохранении этого частным.

причина я добавил, что этот ответ является движением, дают Вам некоторые предложения.

1) Использование другой порт, чем 22. Можно оставить его 22 на PI, но изменить входящий порт на маршрутизаторе к чему-то более чем 10 000... Иначе Вы получите десятки к сотням нападений в день - и после того как Вы, как известно, работаете, SSH размещают второе, которым найдено использование, Вы принадлежите.

2) сертификаты Использования вместо имени пользователя/пароля - полностью отключают вход в систему имени пользователя/пароля.

3), Если Ваш IP-адрес может измениться, используйте сервис типа dyndns для получения DNS hosthame (я использую noip, это свободно, и они поддерживают клиент Linux для обновления IP-адреса - я думаю, что Вы можете просто склонный - получают его на пи теперь). Существует все еще несколько других компаний, которые предлагают это бесплатно.

4) Сохраняют Ваше пи (или независимо от того, что Вы, ssh в) актуальный (sudo склонный - получают обновление). Я полагаю, что ssh вполне прилично исследуется к настоящему времени, но я также верил ssh https...

4
ответ дан 23 November 2019 в 01:38

Если Вы знаете, что один из Вашего компьютера всегда, у Вас также есть возможность использовать его в качестве прокси ssh.

скажем, Ваш имеют установку доменного имени для Вашего внешнего IP-адреса (т.е. myhome.dyndns.com или безотносительно), что Вы сделаете, соединиться на одном компьютере (скажем, малина всегда, и Вы передаете порт от своего маршрутизатора до него), Ваши соединения SSH будут:

школа-> (маршрутизатор, прозрачный здесь)-> малина->, человечность или окна

теперь, в Вашем ~/.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 человечности компьютер сначала соединится с малиной и затем запустит ssh сессию к компьютеру человечности.

я рекомендую Вам, безотносительно порта, который Вы принимаете решение передать, отключить пароль в/etc/sshd.conf для разрешения только входа в систему через ssh ключ. Этот путь при установке ключа на малине и на человечности с параметром 'ForwardAgent', необходимо будет только разблокировать ключ, и затем никакой пароль не требуется, чтобы соединяться. Таким образом, даже если боты пытаются войти в систему на Вашем ssh, они никогда не будут мочь войти в систему, так как Вы запрещаете вход в систему пароля.

Премия, это работает также с scp, scp нечто ubuntu:/tmp/foo будет использовать ту же установку без дальнейших параметров. Премия 2, эта установка не требует никакого изменения дома, если завтра Вы и другой компьютер, просто скопировать/вставить код в Вашей конфигурации ssh, изменяете хост и IP, вот именно, никакая потребность открыть новый порт на маршрутизаторе

11
ответ дан 23 November 2019 в 01:38

Сомневался, будет ли это соответствовать лучше как комментарий, а не ответ, но я отправлю его здесь так или иначе.

Некоторые вещи необходимо думать о прежде, чем сделать это:

  1. Вы откроете свои системы Интернету, таким образом, необходимо будет удостовериться, что они хорошо исправляются, и конфигурация безопасности укреплена (например, не позволяйте корневой вход в систему и используйте pubkeys вместо паролей).
  2. Ваш общедоступный IP (см. whatismyip.com) может измениться, в зависимости от Вашего ISP, который он мог изменять ежедневно или почти никогда. Это означает, что необходимо будет найти способ выяснить общедоступный IP. Вы могли посетить whatismyip.com из своей домашней сети ежедневно, создать некоторое приложение или использовать Динамический DNS (DynDNS) для отображения изменяющегося общедоступного IP на статическое доменное имя.
  3. , Если Вы хотите использовать IPv6 для обхода всей стычки, связанной с IPv4 и NATing, Вам будут нужны Ваши устройства, маршрутизатор, ISP... для разговора IPv6 также. Существуют некоторые сервисы, которые могут помочь Вам, когда Ваш ISP не поддерживает IPv6, но Ваши устройства и маршрутизатор должны будут говорить он так или иначе.
  4. , Чем больше портов и устройств Вы открываете к Интернету, тем больше Ваша область нападения становится. Я предложил бы использовать поле перехода в Вашей сети и только предоставить доступ SSH к тому устройству из Интернета. Поле перехода в основном было бы тем очень укрепленная система, которую Вы портируете вперед по своему маршрутизатору на Интернет. После того, как подключенный к тому полю, Вы сможете к SSH к Вашей внутренней сети через него. Полем перехода мог в основном быть другой Raspberry Pi. Я предложил бы использовать специализированное устройство, смочь укрепить его как можно больше (среди других путем выполнения как можно меньшего количества сервисов).
  5. (4a) Вместо того, чтобы иметь поле перехода Вы SSH в, Вы могли также настроить сервер VPN, который позволяет Вам просматривать свою домашнюю сеть от Вашего устройства в школе (если исходящие соединения VPN позволяются).
3
ответ дан 23 November 2019 в 01:38

Другие вопросы по тегам:

Похожие вопросы: