У меня есть несколько машин дома, что я хотел бы получить доступ из школы с помощью SSH и VNC. Чтобы сделать это, я дал им статического дюйм/с:
Я знаю, что SSH использует порт 22, таким образом, я могу передать этот порт 192.168.1.51:22 на моем маршрутизаторе, но этот путь я не смогу к SSH к моему Raspberry Pi. Есть ли какой-либо способ, которым я мог настроить это, чтобы смочь получить доступ к обеим машинам?
Если у Вас есть IPv6, Вам даже не нужно перенаправление портов! Просто получите свой постоянный адрес IPv6 (на основе Вашего MAC-адреса, таким образом, он, как гарантируют, останется таким же, если Ваш ISP не будет знать, как IPv6 работает), и используйте это для туннелирования в. Поскольку Ваш адрес IPv6 общедоступен и позволяет миру получать доступ к Вам, не имея необходимость проходить Ваш локальный NAT, Вы не должны потрудиться включать перенаправление портов где угодно. Это будет "просто работать".
Обратите внимание, однако, что IPv6 действительно все еще не поддерживается глобально, и и Ваше домашнее интернет-соединение и удаленное интернет-соединение должны иметь полностью рабочий IPv6, чтобы сделать это.
Однако, если Вы похожи на большинство людей и только имеете IPv4, существует все еще путь! Некоторые маршрутизаторы позволяют Вам передавать определенные исходные порты определенным целевым портам, как так:
В этом примере, порте 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; необходимо было бы обычно только передать один порт для одной машины.
Простой способ решить эту проблему состоит в том, чтобы отобразить различные порты от Вашего маршрутизатора до порта 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>
Теперь, необходимо смочь соединиться со всеми машинами.
Я делаю это - я оставляю на виду 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...
Если Вы знаете, что один из Вашего компьютера всегда, у Вас также есть возможность использовать его в качестве прокси 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, вот именно, никакая потребность открыть новый порт на маршрутизаторе
Сомневался, будет ли это соответствовать лучше как комментарий, а не ответ, но я отправлю его здесь так или иначе.
Некоторые вещи необходимо думать о прежде, чем сделать это: