Erro de encapsulamento SSH: "canal 1: falha na abertura: proibido administrativamente: falha na abertura"


185

Quando abro este túnel ssh:

ssh -nXNT -p 22 localhost -L 0.0.0.0:8984:remote:8983

Eu recebo esse erro ao tentar acessar o servidor HTTP em execução no localhost: 8984:

channel 1: open failed: administratively prohibited: open failed

O que esse erro significa e em qual máquina você pode corrigir o problema?


Talvez esteja faltando alguma coisa, mas por que você está tentando acessar um servidor web usando um cliente ssh?
Faheem Mitha

Por que você está encaminhando o X11 (opção -X) aqui? Se você deseja encaminhar apenas HTTP, isso não é necessário. E como uma observação lateral, o IMHO ssh pode ser a solução errada para disponibilizar um servidor Web em várias portas.
Marcel L

29
Achei que isso significa "Não é possível resolver o nome do host remote" no meu caso.
RobM

3
Como você pode ver nas dezenas de respostas abaixo, a mensagem de erro, apesar de parecer muito específica, deve ser entendida como um erro genérico. Geralmente, a solução é abrir um shell no controle remoto e tentar a mesma conexão, para ver a causa real. Você encontrará nas respostas abaixo as causas reais mais comuns.
Stéphane Gourichon

Uma falha na resolução do DNS pode causar esse erro, e a conexão pode congelar até o tempo limite: superuser.com/a/700677
user423430

Respostas:


122

canal 1: falha na abertura: proibido administrativamente: falha na abertura

A mensagem acima refere-se ao servidor SSH rejeitando a solicitação do seu cliente SSH para abrir um canal lateral. Isso geralmente vem de -D, -Lou -w, como canais separados no fluxo SSH são necessários para transportar os dados encaminhados.

Como você está usando -L(também aplicável a -D), há duas opções em questão que estão fazendo com que o servidor SSH rejeite essa solicitação:

  • AllowTcpForwarding (como Steve Buzonas mencionou)
  • PermitOpen

Essas opções podem ser encontradas em /etc/ssh/sshd_config. Você deve garantir que:

  • AllowTCPForwarding não está presente, está comentado ou está definido como yes
  • PermitOpennão está presente, está comentado ou está definido como any[1]

Além disso, se você estiver usando uma chave SSH para conectar, verifique se a entrada correspondente à sua chave SSH ~/.ssh/authorized_keysnão possui no-port-forwardingou permitopeninstruções [2].

Não é relevante para o seu comando específico, mas também é um pouco relevante para este tópico, PermitTunnelse você estiver tentando usar a opção -w.

[1] Sintaxe completa na página de sshd_config(5)manual.

[2] Sintaxe completa na página de authorized_keys(5)manual.


Aqui o que eu adicionei especificamente no sshd_config para fazê-lo funcionar: TCPKeepAlive yes AllowTCPForwarding yes AllowOpen any Eu tenho alguns "falha de abertura", mas parece normal. As coisas funcionam muito bem.
Pierre Thibault

4
Uma caixa de canto a ser observada: Você pode obter esse erro ao tentar criar um dispositivo tap / tun com SSH e o SSH permite, mas o kernel não. Isso pode ocorrer em contêineres LXC. Consulte blog.felixbrucker.com/2015/10/01/… para obter os detalhes exatos, mas, nesse caso, convém adicionar lxc.cgroup.devices.allow = c 10:200 rwmà configuração do contêiner e garantir que, se /dev/net/tunnão existir, mknod /dev/net/tun c 10 200; chmod 666 /dev/net/tunseja executado na inicialização do contêiner.
Azendale

@ Azendale, isso é interessante, obrigado. Isso gera exatamente a mesma mensagem de erro ou algo ligeiramente diferente?
Hyperair # 10/16

1
@ St.Antario, AllowTcpForwardingpermite encaminhar portas TCP por SSH, que é o que o -L 0.0.0.0:8984:remote:8983parâmetro está solicitando. Se AllowTcpForwardingestiver definido como no, o SSH rejeitará a solicitação de encaminhamento de porta, fazendo com que você veja esse erro.
Hyperair # 12/18

2
Tentei editar as letras maiúsculas de AllowTCPForwardingpara AllowTcpForwarding, mas o SE deseja que pelo menos 6 caracteres sejam alterados. Portanto, apenas observe que o caso correto é a Tcpversão, conforme usado corretamente na primeira vez.
dbreaux 12/04

51

Em um caso muito estranho, também experimentei esse erro ao tentar criar um túnel local. Meu comando era algo assim:

ssh -L 1234:localhost:1234 user@remote

O problema era que, no host remoto, /etc/hostsnão havia entrada para "localhost", portanto o servidor ssh não sabia como configurar o túnel. Uma mensagem de erro muito hostil para este caso; feliz por finalmente ter descoberto.

A lição: verifique se o nome do host de destino do seu túnel pode ser resolvido pelo host remoto, via DNS ou /etc/hosts.


2
Obrigado, esse foi o problema para mim. Criei o nome do host para o IP localmente, mas não no servidor ssh remoto.
Dev1feed

2
"o nome do host de destino do seu túnel" é um pouco difícil de decifrar. Você pode dar um exemplo viável concreto que me permita dar o seu exemplo e substituir o "nome do host de destino" no seu exemplo pelo meu nome de host de destino (depois que eu entender o que você quer dizer com isso) e ter esse trabalho?
Terrence Brannon

1
Eu nem tenho certeza de que seu comentário faz sentido. Você diz que a máquina remota não tinha entrada para o host local. Mas diga que o host remoto deve resolver o nome do host de destino e não o nome do host local. Novamente, um exemplo concreto completo da situação antes e depois seria útil.
Terrence Brannon

1
@TerrenceBrannon no comando acima, "localhost" é o nome do host de destino do túnel . Ao criar um túnel SSH, o comando ssh primeiro efetua login no sistema remoto ( user@remote) e, a partir do final remoto, configura túneis para os hosts de destino listados (no comando acima, este é localhost). Ao fazer isso, ele usa o esquema de resolução de nome de host no host remoto . Portanto, se a máquina na qual você fez o SSH não conseguir resolver localhost, você receberá esta mensagem de erro.
Cobbzilla

1
No meu caso, era tão simples quanto digitar o nome do host de destino, então é claro que não foi resolvido, mas meus olhos não viram o erro de digitação por muito tempo.
Randall

25

Pelo menos uma resposta é que a máquina "remota" está inacessível com o ssh por algum motivo. A mensagem de erro é simplesmente absurda.


2
Não, não é; Eu uso o icmp-admin-proibido como o sinalizador de rejeição no firewall configura o tempo todo.
Shadur

9
+1, a mensagem proibida administrativamente levaria a crer que é um bloqueio de firewall; no entanto, você recebe a mesma mensagem quando não há bloqueio de firewall, mas a abertura falha porque não há rota para o host remoto.
Steve Buzonas

1
Passei alguns minutos caçando esse problema, cuja mensagem não faz sentido no meu contexto. Felizmente, é bem claro ao verificar os arquivos de log da estação do meio.
yaccz

De fato, se "remoto" estiver inacessível - porque está inativo, offline, não existe, o nome do host não resolve -, você verá esta mensagem de erro.
Michael Martinez

18

Se o 'remoto' não puder ser resolvido no servidor, você receberá esse erro. Substitua por um endereço IP e veja se isso resolve seu problema ...

(Basicamente, a mesma resposta que a de Neil - mas certamente achei esse o problema do meu lado) [eu tinha um apelido para o nome da máquina no meu ~/.ssh/configarquivo - e a máquina remota não sabia nada sobre esse apelido ...


Você também pode ver o mesmo erro ao usar -D(DynamicForward) como um proxy SOCKS em um navegador. Ou seja, tentando acessar um site que o host do túnel não pode resolver.
timss 02/09

10

Esse erro aparece definitivamente quando você usa as opções ssh ControlPathe ControlMasterpara compartilhar uma conexão de soquete a ser reutilizada entre várias conexões de clientes (de um cliente para o mesmo usuário @ servidor). Abrir muitos (o que quer que isso signifique, no meu caso ~ 20 conexões) gera essa mensagem. Fechar todas as conexões anteriores me permite abrir mais uma vez, até o limite.


Eu vim aqui procurando onde definir esse limite multiplex do ControlMaster. Se alguém souber, é mais que bem-vindo para compartilhar.
Clacke

1
clacke: de acordo com bugs.debian.org/cgi-bin/bugreport.cgi?bug=546854, você pode adicionar um parâmetro MaxSession no arquivo / etc / ssh / sshd_config para definir isso. De acordo com a página do manual, isso é definido como 10 por padrão.
Oliver

@ Oliver: confirmando, o MaxSession funciona, obrigado. colidiu com 64 na minha pasta de trabalho.
Matej Kovac

2
Cuidado, não é MaxSessionMaxSessions. Embora existam algumas proteções, não quebre a configuração do servidor ssh ...
Stéphane Gourichon

8

"administrativamente proibido" é um sinalizador de mensagem ICMP específico que se resume a "O administrador deseja explicitamente que essa conexão seja bloqueada".

Verifique suas configurações de iptables.


5
Não necessariamente. A mensagem é gerada quando o host não pode atender à solicitação. O caso geralmente ocorre porque o administrador bloqueou a conexão, mas também pode ser que não seja explicitamente bloqueado, mas não há rota para o host desejado. O AFAIK sshnão tem lógica para determinar por que uma conexão falhou, apenas pressupõe que, se você está tentando se conectar, ela existe e se você não pode chegar lá, a conexão deve ter sido bloqueada intencionalmente.
Steve Buzonas

2
Oh não. Há uma diferença distinta entre o tipo de resposta do ICMP que diz "não há rota para hospedar" e a que diz "proibido administrativamente" e, a menos que alguém tenha configurado mal um roteador, o último significa exatamente o que diz na lata.
Shadur

1
Acabei de ser 'administrativamente proibido' ao usar um nome de host que não foi resolvido, por isso parece ser um problema. Talvez o ssh esteja fazendo alguma tradução?
Ganesh Sittampalam 23/09

5

Um problema semelhante

Outra possível pista

Eu tive o mesmo problema usando ~/.ssh/authorized_keyscom permitopen.

Como eu uso autosshpara criar um túnel, preciso de duas portas:

  • um para conexão (10000),
  • um para monitoramento (10001).

No lado do cliente

Isso me deu um problema semelhante com a porta de monitoramento:

autossh -M 10001 -o GatewayPorts=yes -o ServerAliveInterval=60  -o TCPKeepAlive=yes -T -N -R :10000:localhost:22 -i ~/.ssh/id_rsa user@remote

Eu recebi essa mensagem (após 10 minutos):

channel 2: open failed: administratively prohibited: open failed

No lado remoto

Meu /var/log/auth.logcontido:

Received request to connect to host 127.0.0.1 port 10001, but the request was denied.

No meu ~/.ssh/authorized_keys(lado remoto) eu tinha o seguinte:

command="/home/user/tunnel",no-X11-forwarding,no-pty,permitopen="localhost:10000",permitopen="localhost:10001" ssh-rsa AAAA...

Como resolver

Resolvi isso substituindo localhostinstâncias por 127.0.0.1:

command="/home/user/tunnel",no-X11-forwarding,no-pty,permitopen="127.0.0.1:10000",permitopen="127.0.0.1:10001" ssh-rsa AAAA...

Parece que o SSH não entende que localhosté um atalho para 127.0.0.1, portanto, a mensagem auth.loge a mensagem proibida administrativamente .

O que eu entendo aqui é que administrativamente significa "devido a uma configuração específica no lado do servidor".


localhost provável mapeado para :: 1 (IPv6) e você não estava ouvindo lá por algum motivo
Jo Rhett

4

Isso também acontece quando /etc/sshd_configtem

AllowTcpForwarding no 

conjunto. Mude para yespara permitir o encaminhamento de TCP.


4

No meu caso, tive que substituir localhostpor 127.0.0.1:

ssh -L 1234:localhost:3389 user@remote

para fazer funcionar.

Eu estava tentando rdesktop -L localhost:1234seguir as instruções da Amazon sobre como conectar-se ao AWS EC2 via encapsulamento SSH . Eu tentei mudar /etc/ssh/sshd_config(o cliente e o servidor executam o Ubuntu 16.04 LTS) pela resposta mais votada. Eu também verifiquei isso localhostnos /etc/hostsdois lados.

Nada funcionou até eu alterar o sshpróprio comando para:

ssh -L 1234:127.0.0.1:3389 user@remote

Muito obrigado!
Thibaut Barrère

3

Alguma atividade de solução de problemas é necessária para encontrar uma resposta definitiva:

  • verifique se o encaminhamento de porta está ativado na configuração ssh do usuário,
  • ativar verbosidade de ssh (-v),
  • verifique os logs ssh no host local e os logs seguros no remoto,
  • teste a porta remota diferente,
  • verifique as configurações do iptables (como Shadur disse).

3

Recebi esse erro uma vez ao colocar o controle remoto no parâmetro -L, também o 0.0.0.0 é redundante, você pode omiti-lo com os mesmos resultados, e acho que você deve adicionar o -g para que ele funcione.

Esta é a linha que eu uso para o tunelamento: ssh -L 8983:locahost:8984 user@remote -4 -g -N

-4 tells to use only ipv4
-g Allows remote hosts to connect to local forwarded ports.
-N Do not execute a remote command.  This is useful for just forwarding ports (protocol version 2 only). I use this to clog the terminal so I don't forget to close it since generally I need the tunnels temporarily.

3

Isso também pode ser causado por não conseguir se conectar à porta no lado local.

ssh -Nn -L 1234:remote:5678 user@remote

Este comando está tentando ligar uma porta de atendimento 1234 na máquina local, que é mapeada para um serviço na porta 5678 em uma máquina remota.

Se a porta 1234 na máquina local já estiver em uso por outro processo (talvez uma sessão ssh -f em segundo plano), o ssh não poderá escutar nessa porta e o túnel falhará.

O problema é que essa mensagem de erro pode significar várias coisas, e "proibido administrativamente" às ​​vezes dá a idéia errada. Portanto, além de verificar o DNS, firewalls entre local e remoto e sshd_config, verifique se a porta local já está sendo usada. Usar

lsof -ti:1234

para descobrir qual processo está sendo executado em 1234. Você pode precisar do sudo para lsof para listar os processos pertencentes a outros usuários. Então você pode usar

ps aux | grep <pid>

para descobrir o que é esse processo.

Para obter tudo isso em um comando:

ps aux | grep "$(sudo lsof -ti:1234)"

2

Eu tive a mesma mensagem enquanto tentava fazer um túnel. Houve um problema com o servidor DNS no lado remoto. O problema foi resolvido quando voltou ao trabalho.


2

Estou extremamente surpreso que ninguém tenha mencionado que isso pode ser um problema de DNS.

journalctl -f
channel 3: open failed: administratively prohibited: open failed
Mar 10 15:24:57 hostname sshd[30303]: error: connect_to user@example.com: unknown host (Name or service not known)

Isso pode ser apresentado se remotenão for solucionável ou se você inserir uma sintaxe desconhecida, como fiz aqui, onde adicionei uma user@à lógica de encaminhamento de porta (que não funcionará).


2

No meu caso, o problema ocorreu devido à solicitação de um encapsulamento sem acesso ao shell enquanto o servidor pretendia forçar uma alteração de senha na minha conta. Devido à falta de um shell, não pude ver isso e só recebi o erro

channel 2: open failed: administratively prohibited: open failed  

Minha configuração de túnel era a seguinte:

ssh -p [ssh-port] -N -f -L [local-port]:127.0.0.1:[remote-port]
[server-address]

O erro foi mostrado ao efetuar login diretamente no servidor (sem -N -f):

WARNING: Your password has expired. You must change your password now
and login again!

Resolvi o problema efetuando login com acesso ao shell e alterando a senha. Então eu poderia simplesmente usar túneis sem acesso ao shell novamente.


1

Eu tive esse problema ao tentar conectar via SSH com um usuário que estava autorizado apenas a conectar usando SFTP.

Por exemplo, isso estava no servidor /etc/ssh/sshd_config:

Match group sftponly
    ForceCommand internal-sftp
    ChrootDirectory /usr/chroot/%u
    [...]
Match

Portanto, nesse caso, para usar o SSH, você precisará remover o usuário do sftponlygrupo equivalente ou conectar-se usando um usuário que não esteja limitado ao SFTP.


1

Verifique se /etc/resolv.confestá vazio no servidor para o qual você está ssh. Várias vezes, achei que isso estava relacionado a um /etc/resolv.confarquivo vazio

Se não for root, você pode simplesmente verificar o servidor tentando alguns pingou telnet(80) um nome de host público, ou seja:

root@bananapi ~ # telnet www.google.com 80
telnet: could not resolve www.google.com/80: Name or service not known

Depois de adicionar registros do servidor de nomes a /etc/resolv.conf:

root@bananapi ~ # telnet www.google.com 80
Trying 74.125.195.104...
Connected to www.google.com.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.0 302 Found
Location: http://www.google.ro/?gws_rd=cr&ei=8fStVZ-hMIv6UvX6iuAK

No entanto, você também deve verificar por que /etc/resolv.confestava vazio (isso geralmente é preenchido com registros do servidor de nomes pelo cliente dhcp no servidor, se aplicável.


1

Eu estava recebendo a mesma mensagem enquanto fazia o SSH tunando para o Debian. Acabou que o sistema remoto não tinha espaço livre. Após liberar espaço em disco e reiniciar, o túnel começou a funcionar.


0

Eu vi esse erro no cygwin e isso também deveria ser verdade no linux e funcionou para mim. No meu caso, eu fiz o ssh -ND *: 1234 user@127.0.0.1 e quando conectei um navegador a esse servidor de meias-comp, ele navegava, mas no comp em que executei o comando ssh, recebi esse erro em o console com cada solicitação - pelo menos para um site, embora o navegador o tenha recuperado pelo proxy ou parecido, pelo menos na medida em que vi a idade principal. Mas fazer essa alteração se livrou da mensagem com falha

http://linuxindetails.wordpress.com/2010/02/18/channel-3-open-failed-administrativamente-prohibited-open-failed/

While trying to do some SSH tunneling, here is the error I got :
channel 3: open failed: administratively prohibited: open failed
To avoid this kind of error, have a look at the SSH daemon configuration file :
/etc/ssh/sshd_config
Add possibly the following line :
root@remote-server:~# echo “PermitTunnel yes” >> /etc/ssh/sshd_config
Then, restart your sshd server :
root@remote-server:~# service ssh restart
or

root@remote-server:~# /etc/init.d/ssh restart

O encapsulamento AFAIK é ativado por padrão porque a desativação não adiciona nenhuma camada de segurança, principalmente apenas um inconveniente de adicionar um encapsulamento de terceiros. Estou tendo um problema semelhante ao tentar fazer proxy para servidores internos de um local externo e o encapsulamento é ativado + iptables liberadas com a ação padrão para ACCEPT.
Steve Buzonas

@SteveBuzonas Eu vejo isso em / etc / sshd_config para que a) não desative o encapsulamento b) quanto à minha resposta, a solução pode não ser uma boa ideia. Aqui está o que o sshd_config diz sobre essa opção # Para desativar as senhas de texto não criptografado em túnel, mude para no aqui! #PermitTunnel no
barlop

O @SteveBuzonas verifica o seu, provavelmente está definido como no e você pode fazer um túnel, já que o túnel está ativado por padrão.
#

Eu estava pensando em AllowTCPForwarding: O comentário que você está falando # To disable tunneled clear texté sobre PasswordAuthenticationser definido como não, PermitTunnelé uma configuração para permitir os túneis de rede da camada 2 ou 3 via tun / tap e o padrão é não. As opções L, R e D usam o encaminhamento TCP e não um dispositivo para tunelamento.
Steve Buzonas

0

Um outro cenário é que o serviço que você está tentando acessar não está em execução. Eu corri para esse problema outro dia apenas para lembrar que a instância httpd à qual eu estava tentando conectar havia sido interrompida.

Suas etapas para resolver o problema seriam começar pelo mais simples, que é ir para a outra máquina e verificar se você pode se conectar localmente e depois voltar ao computador cliente. Pelo menos isso permitirá que você trabalhe em que ponto a comunicação não está acontecendo. Você pode adotar outras abordagens, mas essa é uma que funcionou para mim.


Uma dica geral útil, mas não uma resposta para a pergunta feita.
Kyle Jones #

0

Verifique seu roteador quanto à proteção de religação de DNS . Meu roteador (pfsense) tem a proteção de religação de DNS ativada por padrão. Isso estava causando o erro 'canal aberto: falha administrativamente proibida: falha ao abrir' com SSH


0

Eu tive o mesmo problema e percebi que era DNS. O tráfego é encapsulado, mas o pedido de DNS não. Tente editar o arquivo de hosts DNS manualmente e adicione o serviço que você deseja acessar.


0

O meu caso:

$ssh -D 8081 localhost >>log1.txt 2>&1 &

----wait for 3 days

$tail -f log1.txt
channel 963: open failed: connect failed: Connection refused
channel 963: open failed: connect failed: Connection refused
channel 971: open failed: connect failed: Connection reset by peer
channel 982: open failed: connect failed: Connection timed out
channel 979: open failed: connect failed: Connection timed out
channel 1019: open failed: administratively prohibited: open failed
accept: Too many open files
channel 1019: open failed: administratively prohibited: open failed
accept: Too many open files
channel 1019: open failed: administratively prohibited: open failed

$ps  axu | grep 8081
root       404  0.0  0.0   4244   592 pts/1    S+   05:44   0:00 grep --color=auto 8081
root       807  0.3  0.6   8596  6192 ?        S    Mar17  76:44 ssh -D 8081 localhost

$lsof -p 807 | grep TCP
ssh     807 root 1013u  sock     0,8      0t0 2076902 protocol: TCP
ssh     807 root 1014u  sock     0,8      0t0 2078751 protocol: TCP
ssh     807 root 1015u  sock     0,8      0t0 2076894 protocol: TCP
.....

$lsof -p 807 | wc -l
1047

$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   malcolm-desktop

$ssh localhost
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-53-generic i686)

----after restart ssh -D 8081 localhost
$ lsof -p 1184 | grep TCP
ssh     1184 root    3u  IPv4 2332193      0t0   TCP localhost:37742->localhost:ssh (ESTABLISHED)
ssh     1184 root    4u  IPv6 2332197      0t0   TCP ip6-localhost:tproxy (LISTEN)
ssh     1184 root    5u  IPv4 2332198      0t0   TCP localhost:tproxy (LISTEN)
ssh     1184 root    6u  IPv4 2332215      0t0   TCP localhost:tproxy->localhost:60136 (ESTABLISHED)
ssh     1184 root    7u  IPv4 2336142      0t0   TCP localhost:tproxy->localhost:32928 (CLOSE_WAIT)
ssh     1184 root    8u  IPv4 2336062      0t0   TCP localhost:tproxy->localhost:32880 (CLOSE_WAIT)

0

Eu recebi esse erro ao escrever esta entrada no meu blog :

/etc/ssh/sshd_config teve algo como:

Match Group SSHTunnel_RemoteAccessGroup
    AllowTcpForwarding yes
    PermitOpen=sshbeyondremote.server.com:22

Mas ~/.ssh/configtinha:

Host remote.server.com
  HostName remote.server.com
  Port 10022
  User useronremote
  IdentityFile ~/.ssh/keys/key1/openssh.keyforremote.priv
  LocalForward 2222 SSHBeyondRemote.server.com:22

Note-se a diferença no caso (maiúsculas) entre SSHBeyondRemote.server.com:22 e sshbeyondremote.server.com:22 .

Depois de corrigir o caso, não havia mais o problema.

Eu estava usando:

Versão do cliente OpenSSH:

  • OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 de março de 2016

Versão do servidor OpenSSH:

  • OpenSSH_7.6p1 Debian-4, OpenSSL 1.0.2n 7 de dezembro de 2017

1
Se você deseja vincular, promover, citar ou se referir a algo ao qual está afiliado, deve divulgar explicitamente essa afiliação. Dizer '' durante a montagem (link) '' não é suficiente (porque eu não entendi o que significava até depois de descobrir que você estava vinculando ao seu próprio blog); Ter um URL que corresponda ao seu nome de usuário do Stack Exchange não é suficiente. Referências: Como não ser um spammer ,  Evite manifesta a auto-promoção , ... (Cont)
Scott

(Continua) ... e quando devemos aplicar o requisito de afiliação?    Você é livre para mencionar seu blog, seu empregador, qualquer software conhecido que tenha desenvolvido, qualquer livro que tenha escrito, quaisquer outros projetos aos quais você seja ou tenha sido afiliado etc., na sua página de perfil de usuário. .
Scott

0

Outra causa de resolução de nomes: Meus / etc / hosts tinham um endereço IP incorreto para o nome do servidor (não para o host local), assim:

127.0.0.1     localhost
192.168.2.45  server.domain.com server

Mas o IP do servidor configurado (e o nome DNS resolvido com os comandos host / dig) era 192.168.2.47. Um erro de digitação simples causado por uma reconfiguração de IP anterior. Após corrigir / etc / hosts, a conexão do túnel funcionou perfeitamente:

ssh user@server.domain.com -L 3456:127.0.0.1:5901

É estranho que o IP real tenha causado a falha quando eu estava usando o IP literal do host local para o túnel. Distro: Ubuntu 16.04 LTS.


0

A razão pela qual recebi essa mensagem não é a mais comum, mas vale a pena mencionar. Eu havia gerado por script uma lista de túneis e, para garantir uma apresentação em coluna, imprimi cada último byte em dois bytes. Quando tentei abrir o encaminhamento de túnel para 192.168.66.08, ele sempre falhava, porque '08' é interpretado por gethostbyaddr como um número octal inválido :)


0

Parece que existem muitas causas possíveis para esta mensagem. No meu caso, foi uma incapacidade de acessar o controle remoto porque eu não havia fornecido o arquivo de chave corretamente.

A -Lopção adiciona um salto SSH implícito (efetivamente usando o host SSH explícito como um servidor bastião / salto). Pode ser mais fácil depurar isso executando o salto explicitamente e criando um shell de login na máquina de destino usando "proxycommand".

Depois que isso estiver funcionando, você poderá fazer o encaminhamento da porta com base nas máquinas de destino localhost(supondo que elas possam efetuar login):

-N -L 1234:localhost:1234
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.