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. Encaminhei a porta 22 do meu roteador para o IP do computador A, para que tudo faça sentido para mim.
No entanto, também desejo encaminhar a porta 26 para o computador B e o SSH de fora da rede usando o IP externo para ambos, mas especificando a porta 22 ou 26, para selecionar efetivamente qual computador usar.
Tentei permitir a porta 26 através de SAÍDA de iptables
A e ENTRADA de B, mas isso não pareceu 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.
Versões:
- A = OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 de março de 2012
- B = OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1c 10 de maio de 2012
A tem 12.04 Ubuntu, B é um Raspberry Pi com Raspbian.
EDIT: Algo que eu esqueci de colocar em: Eu tentei mudar o arquivo SSH config (eu achei que é /etc/ssh/ssh_config
) Eu uncommented (excluída a #
) a linha com Port
e mudou 22
para 26
. Ainda me deu a mensagem de conexão recusada. (Reiniciei sem sucesso.)
fonte
Respostas:
Parece que você não está executando o SSH na porta 26 na segunda máquina. Você pode alterar o número da porta nessa máquina para 26.
Edite
/etc/ssh/sshd_config
e não esqueça de reiniciar o SSH ou deixá-lo em 22, mas encaminhe a porta 26 no roteador para a porta 22 na segunda máquina. Além disso, não esqueça de alterar as configurações de firewall na segunda máquina para permitir a conexão.fonte
Se você estiver no sistema Linux e desejar conectar-se a um servidor SSH na porta 26, poderá usar o seguinte comando.
Nota:
fonte
Eu uso a porta 22 apenas para o acesso ssh da intranet.
Para acessar via internet, eu uso uma porta personalizada (incomum). Isso tem o benefício de reduzir a carga gerada por crianças de script que estão varrendo a porta 22 em busca de "nomes de usuário conhecidos".
Os processos sshd externos são controlados
xinetd
e executados em paralelo ao processo internosshd
. No exemplo a seguir, uso a porta 12345:Você pode alterar isso para qualquer número de porta livre disponível no seu sistema. Talvez um valor mais alto torne também um pouco mais improvável que essa porta seja verificada por uma "verificação rápida de porta" .
A
xinetd
configuração é:O arquivo
/etc/ssh/external-ssdh.config
pode ser uma cópia da suasshd
configuração usual . Verifique se as seguintes instruções estão configuradas:Sugiro também impor a autenticação de chave pública e desativar a autenticação de senha para o acesso à Internet:
fonte
As portas de escuta também podem ser vinculadas a endereços IP
/ etc / ssh / sshd_config:
fonte
Como expliquei em uma resposta relacionada , o cliente ssh permite especificar o formato URI como
ssh://user@host:1234
. Por exemplo:onde 2222 é o número da porta. Substitua o número da porta que você pretende usar. Obviamente, lembre-se de que, para conectar-se à porta especificada, o servidor ssh (no host ao qual você está tentando se conectar) precisa escutar na porta especificada em primeiro lugar
fonte
Não é uma boa idéia executar o ssh na porta padrão (TCP / 22), nem encaminhar do WAN IP 22 para qualquer porta que esteja usando o servidor ssh no IP da LAN.
Em um sentido mais geral, a conexão com o serviço ssh-server deve estar ouvindo nessa porta. Voce tem que
/etc/ssh/sshd_config
( observe o d ) de#Port 22
atéPort 26
. Ou seja, descomente e altere a porta. Talvez melhor que 26 seja algo aleatoriamente acima , como 42895.Reinicie o serviço ssh-server
Então, a partir do ssh-client, você poderá se conectar
Bônus:
mosh
Se o pacote mosh estiver instalado no servidor, você utilizará
fonte