Как SSH на порт, отличный от 22

У меня есть два компьютера за одним и тем же маршрутизатором. Давайте назовем их А и Б.

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 г.

A имеет 12,04 Ubuntu, B представляет собой Raspberry Пи с Распбианом.

РЕДАКТИРОВАТЬ: Что-то, что я забыл вставить: я попытался переключить конфигурационный файл SSH (я обнаружил, что это /etc/ssh/ssh_config), я раскомментировал (удалил #) строку с Port и изменил 22 до 26. Это дало мне сообщение об отказе в соединении до сих пор. (Я перезагрузился безрезультатно.)

159
задан 11 August 2017 в 17:36

6 ответов

Похоже, вы не используете SSH на порту 26 на втором компьютере. Вы можете изменить номер порта на этом компьютере на 26.

Либо отредактируйте /etc/ssh/sshd_config & amp; не забудьте перезапустить SSH или оставить его на 22, но перенаправить порт 26 на маршрутизаторе на порт 22 на втором компьютере. Кроме того, не забудьте изменить настройки брандмауэра на втором компьютере, чтобы разрешить подключение.

0
ответ дан 11 August 2017 в 17:36

Порты прослушивания также могут быть жестко связаны с IP-адресами

/ etc / ssh / sshd_config:

ListenAddress 10.10.10.10:22
ListenAddress 20.20.20.20:4444
0
ответ дан 11 August 2017 в 17:36

Я использую порт 22 только для доступа по SSH в интрасети.

Для доступа через интернет я использую нестандартный (необычный) порт. Это имеет то преимущество, что я уменьшаю нагрузку, создаваемую детьми сценариев, которые сканируют порт 22 на «хорошо известные имена пользователей»

внешние процессы sshd управляются xinetd и выполняются в параллельно внутреннему процессу sshd. В следующем примере я использую порт 12345. Вы можете изменить его на любой доступный номер свободного порта в вашей системе. Возможно, более высокое значение сделает также более маловероятным, что этот порт сканируется с помощью «быстрого сканирования порта».

Конфигурация xinetd:

service ssh-external
{
    socket_type = stream
    wait = no
    protocol = tcp
    type = UNLISTED
    user = root
    server = /usr/sbin/sshd
    server_args = -i -f  /etc/ssh/external-sshd.config
    port = 12345
    log_on_failure += USERID

}

Файл /etc/ssh/external-ssdh.config может быть копией вашей обычной конфигурации sshd. Убедитесь, что настроены следующие операторы:

Port 12345
AddressFamily inet

Я также предлагаю включить аутентификацию с открытым ключом и отключить аутентификацию по паролю для доступа в Интернет:

PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
0
ответ дан 11 August 2017 в 17:36

Как я объяснил в ответе , ssh-клиент позволяет указать формат URI как ssh://user@host:1234. Например:

ssh  ssh://myuser@mydomain.com:2222

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

0
ответ дан 11 August 2017 в 17:36

Если вы работаете в системе Linux и хотите подключиться к SSH-серверу через порт 26, вы можете использовать следующую команду.

ssh user@192.168.1.1 -p 26

Примечание:

  1. Замените IP-адрес сервера на IP-адрес или DNS-имя вашего сервера.
  2. Измените номер порта, который вы установили.
  3. если вы используете настраиваемый порт SSH, то для исходящего, самого входящего соединения на брандмауэре разрешается использовать тот же самый порт, в противном случае соединение не будет установлено
0
ответ дан 11 August 2017 в 17:36

Хорошая идея не состоит в том, чтобы выполнить ssh на порте по умолчанию (TCP/22), ни один не передает от WAN IP 22 до любого порта, использует ssh-сервер на IP LAN.

В более общем смысле соединиться с ssh-серверной-службой должен слушать на том порте. Вы имеете к

  1. Редактирование на /etc/ssh/sshd_config (отметьте d) от #Port 22 кому: Port 26. Т.е., некомментарий и изменение порт. Возможно, лучше, чем 26 было бы что-то случайным образом выше, как 42 895.
  2. Перезапустите ssh-серверную-службу

    sudo systemctl restart sshd.service
    

Затем от ssh-клиента Вы сможете соединиться

ssh user@serverNameOrIP -p 42895

Премия: mosh

Если mosh пакет установлен на сервере, Вы затем используете

mosh --ssh="ssh -p 42895" serverNameOrIP
0
ответ дан 11 August 2017 в 17:36

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

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