У меня есть два компьютера за одним маршрутизатором. Давайте назовем их А и Б.
A может SSH к B следующим образом: ssh usr@<internal ip of computer>
B может использовать SSH для A, делая то же самое, но должен использоваться внешний IP. Я перенаправил порт 22 моего маршрутизатора на IP-адрес компьютера A, так что все это имеет для меня смысл.
Однако я также хочу перенаправить порт 26 на компьютер B и SSH из-за пределов сети, используя внешний IP-адрес для обоих, но указав порт 22 или 26, чтобы эффективно выбрать, какой компьютер использовать.
Я попытался разрешить порт 26 через OUTPUT iptables
на A и INPUT B, но это не сработало. Я также перенаправил порт 26 на внутренний IP-адрес B (через маршрутизатор), как я сделал с 22 для A.
Вот что я получаю, когда пытаюсь подключиться по SSH от A к B, используя внешний IP и порт 26:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.
Версии:
- A = OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 марта 2012 г.
- B = OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1c 10 мая 2012 г.
У Ubuntu 12.04, B - Raspberry Pi с Raspbian.
РЕДАКТИРОВАТЬ: что-то, что я забыл вставить: я попытался переключить файл конфигурации SSH (я обнаружил, что это так /etc/ssh/ssh_config
), я раскомментировал (удалил #
) строку с Port
и изменился 22
на 26
. Это дало мне сообщение об отказе в соединении до сих пор. (Я перезагрузился безрезультатно.)
источник
Ответы:
Похоже, вы не используете SSH на порту 26 на второй машине. Вы можете изменить номер порта на этом компьютере на 26.
Либо отредактируйте
/etc/ssh/sshd_config
и не забудьте перезапустить SSH или оставьте его на 22, но перенаправьте порт 26 на маршрутизаторе на порт 22 на втором компьютере. Кроме того, не забудьте изменить настройки брандмауэра на втором компьютере, чтобы разрешить подключение.источник
Если вы работаете в системе Linux и хотите подключиться к SSH-серверу через порт 26, вы можете использовать следующую команду.
Примечание:
источник
Я использую порт 22 только для доступа SSH интрасети.
Для доступа через интернет я использую нестандартный (необычный) порт. Это имеет то преимущество, что я уменьшаю нагрузку, создаваемую детьми сценариев, которые сканируют порт 22 на «хорошо известные имена пользователей».
На внешних процессах SSHd контролируются
xinetd
и работают параллельно с внутреннимsshd
процессом. В следующем примере я использую порт 12345:Вы можете изменить это на любой свободный номер порта в вашей системе. Возможно, более высокое значение сделает также более маловероятным, что этот порт сканируется с помощью «быстрого сканирования порта» .
xinetd
Конфигурация:Файл
/etc/ssh/external-ssdh.config
может быть копией вашей обычнойsshd
конфигурации. Убедитесь, что настроены следующие операторы:Я также предлагаю включить аутентификацию с открытым ключом и отключить аутентификацию по паролю для доступа в Интернет:
источник
Порты прослушивания также могут быть жестко связаны с IP-адресами
/ И т.д. / SSH / sshd_config:
источник
Как я объяснил в связанном ответе , клиент ssh позволяет указать формат URI как
ssh://user@host:1234
. Например:где 2222 - номер порта. Замените номер порта, который вы намерены использовать вместо этого. Конечно, помните, что для подключения к указанному порту сервер ssh (на хосте, к которому вы пытаетесь подключиться) должен сначала прослушивать указанный порт.
источник
Не рекомендуется запускать ssh на порте по умолчанию (TCP / 22), а также не пересылать с WAN IP 22 на какой-либо порт, использующий ssh-сервер на LAN IP.
В более общем смысле для подключения к ssh-серверу служба должна прослушивать этот порт. Вы должны
/etc/ssh/sshd_config
( обратите внимание на d ) от#Port 22
доPort 26
. Т.е. раскомментируйте и измените порт. Может быть, лучше, чем 26 будет что-то случайное выше , как 42895.Перезапустите службу ssh-сервера
Тогда из ssh-клиента вы сможете подключиться
Бонус:
mosh
Если пакет mosh установлен на сервере, вы используете
источник