Sto provando a generare un server SSH in una macchina dietro un router.Come bypassare firewall e NAT con tunnel SSH inverso
Per prima cosa ho cercato di impegnare la SSH al mio indirizzo IP pubblico:
ssh -R 10002:localhost:22 <ip_address>
Poi sono richiamato con una richiesta di password, tuttavia la mia password nome utente non sembra funzionare.
Ovviamente conosco la mia password nome utente, quindi mi sembra che stia cercando di autenticare in un altro computer sotto la stessa rete.
Qualche suggerimento su come risolvere questo problema?
Sarebbe inoltre utile qualsiasi alternativa su come creare un server SSH dietro un router quando non si ha accesso al router.
Le porte in iptables sono tutte aperte.
UPDATE
Come suggerito da Thomas Oster risposta che ho provato quanto segue.
Nella macchina dietro il router che ho eseguito il seguente comando:
$ ssh -R10002:localhost:22 <remote_public_ip_address> -l <my_remote_server_username>
<remote_ip_address>
essere il remote_ip_address di un server con IP pubblico e server SSH su cui ho il pieno controllo.
<my_remote_server_username>
essere il nome utente del server remoto.
Dopo di che, ho provato a collegare dal server remoto al server dietro il router in questo modo:
$ ssh -p 10002 <remote_public_ip_address>
Tuttavia, questo comando visualizza il seguente output:
ssh: connect to host <remote_public_ip_address> port 10002: Connection refused
Così ho aperto la porta 10002 nel firewall iptables usando il seguente comando:
sudo iptables -A INPUT -p tcp --dport 10002 -j ACCEPT
Successivamente ho eseguito nuovamente il comando ma viene visualizzato lo stesso messaggio di errore.
Nella mia macchina dietro il router ho tutte le porte aperte in iptables.
UPDATE 2
dovete permettere portforwarding in/etc/ssh/sshd_config del server remove_public_ip_address
ho cercato di permettere portforwarding in sshd_config file aggiungendo questo comando:
LocalForward 10002 <my_remote_public_server_ip>:22
Ma mi ha dato questa e messaggio rror:
Bad configuration option: LocalForward
Dopo "ssh -R ...." hai lasciato la finestra aperta?
Dopo aver eseguito tale comando, si collega al computer pubblico remoto e sì, ho lasciato la finestra aperta.
È possibile utilizzare ssh -p 10002 localhost sul server pubblico dopo aver creato il tunnel ?
Sì, se eseguo quel comando nel server pubblico, si connette dopo avermi chiesto le credenziali.
Si prega di provare "ssh localhost" sulla macchina dietro il router per verificare se sshd è in esecuzione e funzionante.
Anche questo funziona.
UPDATE 3
sono stato finalmente in grado di farlo funzionare (grazie ancora a Thomas Oster)
Stiamo andando a lavorare con tre macchine: Macchina
Destinazione: Che noi voglio collegarmi a.
Macchina Medio: Un server in qualità di intermediario per la connessione (un Linode nel mio caso)
computer di casa: Dove ci sarà l'accesso al computer di destinazione.
Questi sono i passi che ho seguito
Fase 1:
[destination computer]$ vi /etc/ssh/sshd_config
aggiungere l'opzione GatewayPorts:
GatewayPorts sì
Riavvia ssh.
Fase 2:
[destination computer]$ ssh -R 4040:localhost:22 [email protected]
Questo collegherà la macchina pubblica con il computer di destinazione tramite la porta 4040
Sarà connettersi al computer centrale e chiederà il terminale, si deve lasciare questa scheda Aperto.
Fase 3:
collegamento da casa:
ssh [email protected] -p4040
In alternativa, collegare dalla macchina centrale:
[home computer]$ ssh [email protected]
[middle computer]$ ssh [email protected] -p4040
È necessario consentire il port forwarding in/etc/ssh/sshd_config del server remove_public_ip_address –
Dopo "ssh -R ...." hai lasciato la finestra aperta? Il tunnel è attivo solo finché la connessione è aperta. Ha mostrato messaggi di errore come "impossibile collegarsi a 10002"? È possibile utilizzare ssh -p 10002 localhost sul server pubblico dopo la creazione del tunnel? –
Si prega di provare "ssh localhost" sulla macchina dietro il router per verificare se sshd è in esecuzione e funzionante. –