Como fazer conexão remota (túnel ssh) com putty / ssh?

7

Estou tentando fazer um túnel entre um servidor e um laptop com o Putty. O problema é que, como o laptop não tem um endereço IP público, preciso fazer uma conexão reversa. Mas eu realmente não sei como fazer isso.

Deixe-me demonstrar o que eu quero:

SERVIDOR (PORTA: 6000) ---------- > LAPTOP (PORTA: 7000)

mas como o laptop não tem endereço IP público, preciso fazer

SERVIDOR (PORTA: 6000) < ---------- LAPTOP (PORTA: 7000)

Você pode me dizer o que devo escrever como porta de origem, destino, etc.

    
por Glorfindel 13.10.2011 / 12:12

2 respostas

8

Depende da configuração desejada:

SETUP 1) o servidor está escutando

                              ssh tunel             LAN destination   
SERVER (listen on port 6000) ==========> LAPTOP -----> ip:port

(destino da LAN também pode ser localhost: port para conectar o próprio laptop)

CONFIGURAÇÃO DE PUTTY : clique com o botão direito do mouse no título da janela de moldagem, escolha Alterar configurações / Túneis e preencha:

source port: 6000
destination: ip:port (or hostname:port)
select "Remote"

SSH:

CONFIGURAÇÃO 2) o laptop está escutando

                              ssh tunel              destination   
LAPTOP (listen on port 7000) ==========> SERVER -----> ip:port

novamente, o destino pode ser localhost: port para se conectar ao próprio servidor.

Configuração PUTTY :

source port: 7000
destination: ip:port (or hostname:port)
select "Local"

SSH: ssh -L 7000: nome do host: porta

Em ambos os casos, você também pode especificar (em massa por uma caixa de seleção) se o LAPTOP / SERVER de escuta também aceita conexão de outros hosts.

    
por 14.10.2011 / 02:06
0

A direção de suas flechas não tem relação com qual máquina tem endereços IP roteáveis publicamente - você precisa saber em qual direção deseja ir com base no problema que está tentando resolver. A conexão sempre será iniciada a partir do seu laptop (porque não pode ser endereçada diretamente da outra máquina), mas você usará um ou outro argumento de encaminhamento de conexão com base em como deseja que o encaminhamento de porta funcione.

Como não sei putty , darei os comandos correspondentes de OpenSSH ; esperamos que seja fácil encontrar as opções correspondentes nas caixas de configuração da GUI de putty .

Se você quiser que as conexões feitas para laptop:7000 sejam encaminhadas para server:6000 , use ssh -L 7000:server:6000 . Se as conexões forem originadas em seu laptop, você poderá alterar isso para: ssh -L localhost:7000:server:6000 . Isso restringe a porta do laptop a conexões iniciadas no próprio laptop.

Com este comando, um programa no servidor deve estar atendendo à porta 6000 para conexões. Os programas no seu laptop (ou em outro lugar na sua rede local) devem poder se conectar ao seu localhost:7000 (ou ao endereço não-roteável da sua máquina, porta 7000 ) para iniciar a conexão.

Se você quiser que as conexões feitas para server:6000 sejam encaminhadas para laptop:7000 , use ssh -R 6000:localhost:7000 . Por padrão, isso é aberto apenas para conexões iniciadas na máquina do servidor. Se você quisesse que estivesse aberto a todas as máquinas que pudessem contatar o servidor, você poderia usar ssh -R *:6000:localhost:7000 .

Com este comando, um programa no laptop deve estar ouvindo a porta 7000 para conexões. Programas em seu servidor (ou em outro lugar na rede do servidor) devem ser capazes de se conectar a server:6000 (ou o endereço roteável do servidor, porta 6000 ) para iniciar a conexão.

Demorei alguns anos para entender a diferença entre o encaminhamento de conexão -L e -R . O -L diz que os programas tentarão conectar-se L ocally, e o -R diz que os programas tentarão conectar R emotely. (Não se preocupe com a diferença; tenho que procurar no manual toda vez que precisar.)

    
por 14.10.2011 / 01:38