Como fazer SSH em uma porta diferente de 22

Eu tenho dois computadores atrás do mesmo roteador. Vamos chamá-los de A E B.

A pode SSH para B da seguinte maneira: ssh usr@<internal ip of computer>

B pode SSH para A fazendo o mesmo, mas o IP externo deve ser usado. Eu encaminhei a porta 22 do meu roteador para o IP do computador A, de modo que tudo faz sentido para mim.

No entanto, também quero encaminhar a porta 26 para o computador B e SSH de fora da rede usando o IP externo para ambos, mas especificando a porta 22 ou 26, para selecionar efetivamente qual Computador usar.

Eu tentei permitir a porta 26 através da saída de iptables em A e entrada de B, mas isso não parecia funcionar. Também encaminhei a porta 26 para o IP interno de B (através do roteador), como fiz com 22 para A.

Aqui está o que recebo quando tento SSH de A Para B usando o IP externo e a porta 26:

ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.

Versao:

  • A = OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
  • B = OpenSSH_6.0P1 Debian-4, OpenSSL 1.0.1 c 10 de Maio de 2012

A tem 12.04 Ubuntu, B é um Raspberry Pi com Raspbian.

EDIT: algo que esqueci de colocar: tentei alternar o arquivo de configuração SSH (descobri que é /etc/ssh/ssh_config) Eu não comentado (excluído o #) a linha com Port e mudou 22 para 26. Isso me deu a conexão recusou mensagem ainda. (Eu reiniciei sem sucesso.)

Se você estiver no sistema Linux e quiser se conectar a um servidor SSH na porta 26, você pode usar o seguinte comando.

ssh user@192.168.1.1 -p 26

Notar:

  1. Substitua o IP do servidor pelo endereço IP ou nome DNS do seu servidor.
  2. Altere o número da porta conforme definido.
  3. se você estiver usando SSH de porta personalizada, a mesma porta será mais permitida para conexão de saída e de entrada no firewall, caso contrário, a conexão não será estabelecida

Parece que você não está executando SSH na porta 26 na segunda máquina. Você pode alterar o número da porta nessa máquina para 26.

Editar /etc/ssh/sshd_config & não se esqueça de reiniciar SSH (service sshd restart) ou deixá-lo em 22, mas encaminhar a porta 26 no roteador para a porta 22 na segunda máquina. Além disso, não se esqueça de alterar as configurações do firewall na segunda máquina para permitir as conexões.

Eu uso a porta 22 apenas para o acesso ssh da intranet.

Para acesso via internet, uso uma porta personalizada (incomum).Isso tem o benefício de reduzir a carga gerada por script kids que estão digitalizando a porta 22 para "nomes de usuário bem conhecidos".

O externo os processos sshd são controlados por xinetd e correndo em paralelo ao interno sshd process.In o exemplo a seguir eu uso a porta 12345:

Você está livre para mudar isso para qualquer número de porta livre disponível em seu sistema.Talvez um valor mais alto torne também um pouco mais improvável que esta porta seja digitalizada por um "quick port scan".

O xinetd a configuração é:

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}

Arquivo /etc/ssh/external-ssdh.config pode ser uma cópia do seu habitual sshd configuracao.Certifique-se de que as seguintes instruções estejam configuradas:

Port 12345AddressFamily inet

Também sugiro impor a autenticação de chave pública e desativar a autenticação de senha para o acesso à internet:

PasswordAuthentication noPermitEmptyPasswords noChallengeResponseAuthentication no

As portas Listen também podem ser vinculadas a endereços IP

/etc / ssh / sshd_config:

ListenAddress 10.10.10.10:22ListenAddress 20.20.20.20:4444

Como expliquei em um resposta relacionada, o cliente ssh permite especificar o formato URI como ssh://user@host:1234. Por exemplo:

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

onde 2222 é o número da porta. Substitua o número da porta que você pretende usar. Claro, lembre-se que, a fim de se conectar ao servidor SSH porta especificada (no host ao qual você está tentando se conectar) tem que ouvir na porta especificada em primeiro lugar

Não é uma boa ideia executar ssh na porta padrão (TCP/22), nem encaminhar de WAN IP 22 para qualquer porta que esteja usando ssh-server em LAN IP.

Para fazer ssh-server ouvir em qualquer porta que você tem que

  1. Editar em /etc/ssh/sshd_config (observe o d) de #Port 22 para Port 26. Ou seja, descomentar e alterar a porta. Melhor que 26 seria algo aleatoriamente acima (abaixo 65535), como 42895.
    Considere também mudar para PermitRootLogin no.

  2. Teste sua configuração com modo de teste ssh

    sudo sshd -t
  3. Reinicie o serviço ssh-server

     sudo systemctl restart sshd.service

Então, a partir do cliente ssh, você poderá se conectar

ssh user@serverNameOrIP -p 42895

Bonus: mosh

Se o pacote mosh estiver instalado no servidor que você usa

mosh --ssh="ssh -p 42895" serverNameOrIP

Observe que _ / etc/ssh / ssh_config_ é a configuração do cliente ssh. Onde as _ / etc/ssh / sshd_config_ é a configuração do daemon ssh.

Yuu ohave SSH em execução na porta 22 ou 26 na segunda máquina?