Errore tunneling SSH: "canale 1: apertura non riuscita: amministrativamente vietata: apertura non riuscita"


185

Quando apro questo tunnel ssh:

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

Ottengo questo errore quando provo ad accedere al server HTTP in esecuzione su localhost: 8984:

channel 1: open failed: administratively prohibited: open failed

Cosa significa questo errore e su quale macchina è possibile risolvere il problema?


Forse mi manca qualcosa, ma perché stai tentando di accedere a un server Web utilizzando un client SSH?
Faheem Mitha,

Perché stai inoltrando X11 (opzione -X) qui? Se si desidera inoltrare solo HTTP, ciò non è necessario. E come nota a margine IMHO ssh potrebbe essere la soluzione sbagliata per rendere disponibile un server Web su più porte.
Marcel G

29
Ho trovato questo significa "Impossibile risolvere il nome host remote" nel mio caso.
RobM,

3
Come puoi vedere dalla dozzina di risposte di seguito, il messaggio di errore, nonostante sembri molto specifico, dovrebbe essere inteso come un errore generico. Generalmente, la soluzione è aprire una shell sul telecomando e provare la stessa connessione, per vedere la causa reale. Di seguito troverai le risposte alle cause effettive più comuni.
Stéphane Gourichon,

Un errore di risoluzione DNS può causare questo errore e la connessione potrebbe bloccarsi fino al timeout: superuser.com/a/700677
user423430

Risposte:


122

canale 1: apertura non riuscita: amministrativamente vietata: apertura non riuscita

Il messaggio sopra si riferisce al server SSH che rifiuta la richiesta del client SSH di aprire un canale laterale. Questo viene tipicamente da -D, -Lo -w, come canali separati nel flusso SSH sono tenuti a traghettare i dati trasmessi attraverso.

Dal momento che stai utilizzando -L(applicabile anche a -D), ci sono due opzioni in questione che fanno sì che il tuo server SSH rifiuti questa richiesta:

  • AllowTcpForwarding (come menzionato Steve Buzonas)
  • PermitOpen

Queste opzioni sono disponibili in /etc/ssh/sshd_config. È necessario assicurarsi che:

  • AllowTCPForwarding non è presente, è commentato o è impostato su yes
  • PermitOpennon è presente, è commentato o è impostato su any[1]

Inoltre, se si utilizza una chiave SSH per connettersi, è necessario verificare che la voce corrispondente alla chiave SSH in ~/.ssh/authorized_keysnon contenga no-port-forwardingo permitopenistruzioni [2].

Non rilevante per il tuo particolare comando, ma in qualche modo rilevante anche per questo argomento, è l' PermitTunnelopzione se stai tentando di usare l'opzione -w.

[1] Sintassi completa nella sshd_config(5)manpage.

[2] Sintassi completa nella authorized_keys(5)manpage.


Ecco cosa aggiungo specificamente in sshd_config per farlo funzionare: TCPKeepAlive sì AllowTCPFwardwarding sì PermessoOpzione qualsiasi Ho qualche "apertura fallita" ma sembra una cosa normale. Le cose funzionano molto bene.
Pierre Thibault,

4
Un caso da notare: è possibile ottenere questo errore quando si tenta di creare un dispositivo tap / tun con SSH e SSH lo consente, ma il kernel no. Ciò può verificarsi in contenitori LXC. Vedi blog.felixbrucker.com/2015/10/01/… per i dettagli esatti, ma in tal caso potresti voler aggiungere lxc.cgroup.devices.allow = c 10:200 rwmla configurazione del tuo contenitore e assicurarti che, se /dev/net/tunnon esiste, mknod /dev/net/tun c 10 200; chmod 666 /dev/net/tunvenga eseguito all'avvio nel contenitore.
Azendale,

@Azendale, è interessante, grazie. Produce lo stesso identico messaggio di errore o qualcosa di leggermente diverso?
hyperair,

1
@Antario, AllowTcpForwardingconsente di inoltrare le porte TCP su SSH, che è ciò che il -L 0.0.0.0:8984:remote:8983parametro richiede. Se AllowTcpForwardingimpostato su no, SSH rifiuta la richiesta di port forwarding, causando la visualizzazione di tale errore.
hyperair,

2
Ho provato a modificare le maiuscole di AllowTCPForwardinga AllowTcpForwarding, ma SE vuole che siano cambiati almeno 6 caratteri. Quindi basta notare che il caso corretto è la Tcpversione, utilizzata correttamente la prima volta.
dbreaux,

51

In un caso molto strano, ho anche riscontrato questo errore durante il tentativo di creare un tunnel locale. Il mio comando era qualcosa del genere:

ssh -L 1234:localhost:1234 user@remote

Il problema era che sull'host remoto /etc/hostsnon c'erano voci per "localhost", quindi il server ssh non sapeva come impostare il tunnel. Un messaggio di errore molto ostile per questo caso; felice di averlo finalmente capito.

La lezione: assicurati che il nome host di destinazione del tuo tunnel sia risolvibile dall'host remoto, tramite DNS o /etc/hosts.


2
Grazie, questo è stato il problema per me. Ho creato il nome host per l'IP localmente ma non sul server SSH remoto.
dev_feed,

2
"il nome host di destinazione del tuo tunnel" è un po 'difficile da decifrare. Puoi dare un esempio concreto che mi permetta di prendere il tuo esempio e sostituire il "nome host di destinazione" nel tuo esempio con il mio nome host di destinazione (una volta compreso cosa intendi con quello) e avere questo lavoro?
Terrence Brannon,

1
Non sono nemmeno sicuro che il tuo commento abbia un senso. Dici che la macchina remota non aveva voci per localhost. Quindi dire che l'host remoto deve risolvere il nome host di destinazione non il nome host locale. Anche in questo caso un esempio concreto completo della situazione prima e dopo sarebbe utile.
Terrence Brannon,

1
@TerrenceBrannon nel comando sopra, "localhost" è il nome host di destinazione del tunnel . Quando si crea un tunnel SSH, il comando ssh accede prima al sistema remoto ( user@remote), quindi dall'estremità remota, configura i tunnel per gli host di destinazione elencati (nel comando precedente questo è localhost). In questo caso, utilizza lo schema di risoluzione del nome host sull'host remoto . Quindi, se la macchina in cui hai SSH non è in grado di risolvere localhost, riceverai questo messaggio di errore.
cobbzilla,

1
Nel mio caso, era semplice come aver sbagliato a digitare il nome host di destinazione, quindi ovviamente non si è risolto, ma i miei occhi non hanno visto l'errore di battitura per troppo tempo.
Randall,

25

Almeno una risposta è che la macchina "remota" non è raggiungibile con ssh per qualche motivo. Il messaggio di errore è semplicemente assurdo.


2
No non lo è; Uso icmp-admin-vietato come flag di rifiuto nelle configurazioni del firewall per tutto il tempo.
Shadur,

9
+1, il messaggio amministrativamente vietato indurrebbe a credere che si tratti di un blocco firewall, tuttavia si riceve lo stesso messaggio quando non è presente un blocco firewall ma l'apertura non riesce perché non esiste alcun percorso verso l'host remoto.
Steve Buzonas,

1
Ho appena trascorso alcuni minuti a cercare questo problema, il cui messaggio non ha alcun senso nel mio contesto. Per fortuna è abbastanza chiaro dopo aver controllato i file di registro della stazione centrale.
yaccz,

Infatti se "remoto" è irraggiungibile - poiché è inattivo, offline, non esiste, il nome host non si risolve - verrà visualizzato questo messaggio di errore.
Michael Martinez,

18

Se il "telecomando" non può essere risolto sul server, verrà visualizzato l'errore. Sostituisci con un indirizzo IP e vedi se il problema si risolve ...

(Fondamentalmente la stessa risposta di Neil - ma certamente ho scoperto che quello era il problema dalla mia parte) [Avevo un alias per il nome della macchina nel mio ~/.ssh/configfile - e la macchina remota non sapeva nulla di quell'alias ...


È possibile che -Dvenga visualizzato lo stesso errore quando si utilizza (DynamicForward) come proxy SOCKS in un browser. Vale a dire tentare di accedere a un sito Web che l'host del tunnel non è in grado di risolvere.
timss

10

Questo errore viene visualizzato definitivamente quando si utilizzano le opzioni ssh ControlPathe ControlMasterper la condivisione di una connessione socket da riutilizzare tra più connessioni client (da un client allo stesso utente @ server). Aprire troppe (qualunque cosa significhi, nel mio caso ~ 20 connessioni) produce questo messaggio. Chiudere tutte le connessioni precedenti mi consente di aprire più recenti, di nuovo fino al limite.


Sono venuto qui alla ricerca di dove impostare questo limite multiplex ControlMaster. Se qualcuno lo sa, sono più che benvenuti a condividere.
clacke,

1
clacke: secondo bugs.debian.org/cgi-bin/bugreport.cgi?bug=546854 è possibile aggiungere un parametro MaxSession nel file / etc / ssh / sshd_config per impostarlo. Secondo la pagina man, questo è impostato su 10 per impostazione predefinita.
Oliver,

@oliver: conferma, MaxSession funziona, grazie. urtato a 64 sulla mia cartella di lavoro.
Matej Kovac,

2
Fai attenzione, non lo è MaxSessionma MaxSessions. Anche se ci sono alcune protezioni, non interrompere la configurazione del tuo server SSH ...
Stéphane Gourichon

8

"Amministrativamente vietato" è un flag di messaggio ICMP specifico che si riduce a "L'amministratore vuole esplicitamente bloccare questa connessione".

Controlla le impostazioni di iptables.


5
Non necessariamente. Il messaggio viene generato quando l'host non può soddisfare la richiesta. Il caso è generalmente dovuto al fatto che l'amministratore ha bloccato la connessione, ma può anche essere che non sia esplicitamente bloccato ma non esiste alcun percorso verso l'host desiderato. AFAIK sshnon ha una logica per determinare il motivo per cui una connessione non è riuscita, presuppone solo che se si sta tentando di connettersi, allora esiste e se non è possibile arrivarci la connessione deve essere stata bloccata intenzionalmente.
Steve Buzonas,

2
Uh, no. Esiste una netta differenza tra il tipo di risposta ICMP che dice "nessuna route verso l'host" e uno che dice "vietato amministrativamente" e, a meno che qualcuno non abbia erroneamente configurato un router, quest'ultimo significa esattamente ciò che dice sulla scatola.
Shadur,

1
Mi è appena stato "vietato dal punto di vista amministrativo" quando ho usato un nome host che non si è risolto, quindi sembra essere un vero toccasana. Forse ssh sta facendo delle traduzioni?
Ganesh Sittampalam,

5

Un problema simile

Un altro possibile vantaggio

Ho avuto lo stesso problema ~/.ssh/authorized_keyscon permitopen.

Mentre utilizzo autosshper creare un tunnel, ho bisogno di due porte:

  • uno per la connessione (10000),
  • uno per il monitoraggio (10001).

Dal lato client

Questo mi ha dato un problema simile con la porta di monitoraggio:

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

Ho ricevuto quel messaggio (dopo 10 minuti):

channel 2: open failed: administratively prohibited: open failed

Sul lato remoto

Il mio /var/log/auth.logcontenuto:

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

Nel mio ~/.ssh/authorized_keys(lato remoto) avevo questo:

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

Come risolverlo

Ho risolto questo problema sostituendo le localhostistanze con 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...

Sembra che SSH non capisca che localhostè un collegamento a 127.0.0.1, quindi il messaggio auth.loge il messaggio amministrativamente proibito .

Quello che ho capito qui è che amministrativamente significa "a causa di una configurazione specifica sul lato server".


localhost probabilmente mappato su :: 1 (ipv6) e non stavi ascoltando lì per qualche motivo
Jo Rhett,

4

Questo succede anche quando /etc/sshd_configha

AllowTcpForwarding no 

impostato. Passare a yesper consentire l'inoltro TCP.


4

Nel mio caso, ho dovuto sostituire localhostcon 127.0.0.1in:

ssh -L 1234:localhost:3389 user@remote

per farlo funzionare.

Stavo cercando di rdesktop -L localhost:1234seguire le istruzioni di Amazon sul collegamento ad AWS EC2 tramite tunneling SSH . Avevo provato a cambiare /etc/ssh/sshd_config(sia client che server eseguono Ubuntu 16.04 LTS) in base alla risposta più votata. Ho anche verificato che si localhosttrova /etc/hostssu entrambi i lati.

Niente ha funzionato fino a quando non ho cambiato il sshcomando stesso in:

ssh -L 1234:127.0.0.1:3389 user@remote

Grazie mille!
Thibaut Barrère,

3

Sono necessarie alcune attività di risoluzione dei problemi per trovare una risposta definitiva:

  • controlla che il port forwarding sia abilitato nella configurazione ssh dell'utente,
  • abilita la verbosità di ssh (-v),
  • controlla i registri ssh sull'host locale e registri sicuri su quello remoto,
  • testare diverse porte remote,
  • controlla le impostazioni del tuo iptables (come ha detto Shadur).

3

Ho ricevuto questo errore una volta per aver inserito il telecomando nel parametro -L, inoltre 0.0.0.0 è ridondante, puoi ometterlo con gli stessi risultati e penso che dovresti aggiungere -g affinché funzioni.

Questa è la linea che utilizzo per il tunneling: 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

Ciò può anche essere causato dall'incapacità di collegarsi alla porta sul lato locale.

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

Questo comando sta tentando di associare una porta di ascolto 1234 sul computer locale, che esegue il mapping a un servizio sulla porta 5678 su un computer remoto.

Se la porta 1234 sul computer locale è già utilizzata da un altro processo, (forse una sessione ssh -f in background), allora ssh non sarà in grado di ascoltare su quella porta e il tunnel fallirà.

Il problema è che questo messaggio di errore può significare una qualsiasi delle varie cose e "amministrativamente vietato" a volte dà l'idea sbagliata. Quindi oltre a controllare DNS, i firewall tra locale e remoto e sshd_config, controlla se la porta locale è già utilizzata. Uso

lsof -ti:1234

per capire quale processo è in esecuzione su 1234. Potrebbe essere necessario sudo per lsof per elencare i processi di proprietà di altri utenti. Quindi puoi usare

ps aux | grep <pid>

per scoprire cos'è questo processo.

Per ottenere tutto in un solo comando:

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

2

Ho avuto lo stesso messaggio mentre cercavo di scavare un tunnel. Si è verificato un problema con il server DNS sul lato remoto. Il problema è stato risolto quando è tornato al lavoro.


2

Sono estremamente sorpreso che nessuno abbia menzionato che questo potrebbe essere un problema 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)

Questo potrebbe essere presentato se remotenon è risolvibile o hai inserito una sintassi sconosciuta come ho fatto qui in cui ho aggiunto un user@alla logica port-forward (che non funzionerà).


2

Nel mio caso, il problema era dovuto alla richiesta di un tunnel senza accesso alla shell mentre il server mirava a forzare una modifica della password sul mio account. A causa della mancanza di una shell, non riuscivo a vederlo e ho ricevuto solo l'errore

channel 2: open failed: administratively prohibited: open failed  

La mia configurazione del tunnel era la seguente:

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

L'errore ha mostrato quando si accede direttamente al server (senza -N -f):

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

Ho risolto il problema accedendo con l'accesso alla shell e cambiando la password. Quindi potrei semplicemente usare nuovamente i tunnel senza accesso alla shell.


1

Ho riscontrato questo problema durante il tentativo di connessione tramite SSH con un utente autorizzato a connettersi solo tramite SFTP.

Ad esempio, questo era nel server /etc/ssh/sshd_config:

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

Quindi, in questo caso, per utilizzare SSH, dovrai rimuovere l'utente dal sftponlygruppo equivalente o collegarti utilizzando un utente non limitato a SFTP.


1

Controlla se /etc/resolv.confè vuoto sul server a cui stai andando ssh. Più volte ho scoperto che ciò era correlato a un /etc/resolv.conffile vuoto

Se non root, puoi semplicemente controllare sul server provando alcuni pingo telnet(80) su un nome host pubblico, ovvero:

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

Dopo aver aggiunto i record del nameserver 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

Tuttavia, dovresti anche controllare perché /etc/resolv.confera vuoto (di solito è popolato con record nameserver dal client dhcp sul server, se applicabile.


1

Stavo ricevendo lo stesso messaggio mentre sintonizzavo SSH su Debian. Si è scoperto che il sistema remoto non aveva spazio libero. Dopo aver liberato spazio su disco e riavviato, il tunnel ha iniziato a funzionare.


0

Ho visto questo errore su Cygwin e questo dovrebbe essere vero anche per Linux e ha funzionato per me. Nel mio caso avevo fatto ssh -ND *: 1234 user@127.0.0.1 e quando ho collegato un browser a quel server comp-socks, ha navigato, ma sul comp dove ho eseguito quel comando ssh ho avuto l'errore che appare su la console con ogni richiesta - almeno per un sito, anche se il browser lo ha recuperato attraverso il proxy o sembrava, almeno nella misura in cui ho visto l'età principale. Ma apportare questa modifica ha eliminato il messaggio non riuscito

http://linuxindetails.wordpress.com/2010/02/18/channel-3-open-failed-administratively-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

Il tunneling AFAIK è abilitato per impostazione predefinita perché la disabilitazione non aggiunge alcun livello di sicurezza, principalmente solo un inconveniente dell'aggiunta di un tunnel di terze parti. Sto riscontrando un problema simile nel tentativo di eseguire il proxy ai server interni da una posizione fuori sito e il tunneling è abilitato + iptables scaricato con l'azione predefinita a ACCEPT.
Steve Buzonas,

@SteveBuzonas Lo vedo in / etc / sshd_config quindi a) non disabilita il tunneling b) per quanto riguarda la mia risposta, la soluzione potrebbe non essere una buona idea. Ecco cosa dice sshd_config riguardo a quell'opzione # Per disabilitare le password di testo in chiaro tramite tunnel, passare a no qui! #PermitTunnel no
barlop

@SteveBuzonas controlla il tuo probabilmente è impostato su no e puoi eseguire il tunneling in quanto il tunneling è abilitato per impostazione predefinita.
barlop

Stavo pensando AllowTCPForwarding, Il commento di cui stai parlando # To disable tunneled clear textriguarda PasswordAuthenticationl'impostazione di no, PermitTunnelè un'impostazione per consentire tunnel di rete di livello 2 o di livello 3 tramite tun / tap e il valore predefinito è no. Le opzioni L, R e D utilizzano l'inoltro TCP e non un dispositivo per il tunneling.
Steve Buzonas,

0

Un altro scenario è che il servizio a cui stai tentando di accedere non è in esecuzione. Mi sono imbattuto in questo problema l'altro giorno solo per ricordare che l'istanza httpd a cui stavo cercando di connettermi era stata interrotta.

I tuoi passi per risolvere il problema sarebbero iniziare con il più semplice, che sta andando sull'altra macchina e vedendo se riesci a connetterti localmente e poi lavorando di nuovo verso il tuo computer client. Almeno questo ti permetterà di capire a che punto la comunicazione non sta avvenendo. Puoi adottare altri approcci, ma questo ha funzionato per me.


Un utile consiglio generale ma non una risposta alla domanda posta.
Kyle Jones,

0

Controlla la protezione del tuo rebinding DNS sul tuo router . Il mio router (pfsense) ha la protezione Rebinding DNS abilitata per impostazione predefinita. Stava causando l'errore "canale aperto: fallito amministrativamente proibito: apertura fallita" con SSH


0

Ho avuto lo stesso problema e mi sono reso conto che si trattava di DNS. Il traffico è sotto tunnel ma la richiesta DNS n. Prova a modificare manualmente il file degli host DNS e aggiungi il servizio a cui desideri accedere.


0

Il mio 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

Ho ricevuto questo errore durante la scrittura di questa voce nel mio blog :

/etc/ssh/sshd_config aveva qualcosa del tipo:

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

Ma ~/.ssh/configaveva:

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

Nota la differenza nel caso (maiuscole) tra SSHBeyondRemote.server.com:22 e sshbeyondremote.server.com:22 .

Una volta risolto il caso, non vedevo più il problema.

Stavo usando:

Versione del client OpenSSH:

  • OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 marzo 2016

Versione del server OpenSSH:

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

1
Se hai intenzione di collegarti, promuovere, citare o fare riferimento a qualcosa a cui sei affiliato, devi rivelare esplicitamente tale affiliazione. Dire '' mettendo insieme (link) '' non è abbastanza (perché non ho capito cosa significasse fino a quando non ho capito che stavi collegando al tuo blog); avere un URL che corrisponda al nome utente di Stack Exchange non è sufficiente. Riferimenti: Come non essere uno spammer ,  evitare un'autopromozione esplicita , ... (proseguendo)
Scott

(Proseguendo) ... e quando dovremmo applicare il requisito di affiliazione?    Sei libero di menzionare il tuo blog, il tuo datore di lavoro, qualsiasi software ben noto che hai sviluppato, qualsiasi libro che hai scritto, qualsiasi altro progetto a cui sei o con cui sei stato affiliato, ecc., Nella pagina del tuo profilo utente .
Scott,

0

Altra causa di risoluzione dei nomi: I miei / etc / hosts avevano un indirizzo IP errato per il nome del server (non per localhost), in questo modo:

127.0.0.1     localhost
192.168.2.45  server.domain.com server

Ma l'IP del server configurato (e il nome DNS risolto con i comandi host / dig) era 192.168.2.47. Un semplice errore di battitura causato da una precedente riconfigurazione IP. Dopo aver corretto / etc / hosts la connessione al tunnel ha funzionato perfettamente:

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

È strano che l'IP reale abbia causato l'errore quando stavo usando l'IP letterale localhost per il tunnel. Distro: Ubuntu 16.04 LTS.


0

Il motivo per cui ho avuto quel messaggio non è il più comune, ma vale la pena menzionarlo. Avevo generato da script un elenco di tunnel e, per garantire una presentazione di colonna, avevo stampato l'ultimo byte su due byte. Quando ho provato ad aprire il tunnel forwarding al 192.168.66.08, ha sempre fallito, perché '08' è interpretato da gethostbyaddr come un numero ottale non valido :)


0

Sembra che ci siano molte possibili cause alla radice per questo messaggio. Nel mio caso era impossibile accedere al telecomando perché non avevo fornito correttamente il file di chiavi .

L' -Lopzione aggiunge un salto SSH implicito (utilizzando efficacemente l'host SSH esplicito come server bastion / jump). Potrebbe essere più semplice eseguire il debug eseguendo il salto in modo esplicito e creando una shell di accesso al computer di destinazione utilizzando "proxycommand".

Una volta che funziona, puoi eseguire il port forwarding in base al computer di destinazione localhost(supponendo che possa accedere a se stesso):

-N -L 1234:localhost:1234
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.