SSH para usinar sem IP real

0

Problema específico: Dado que tenho uma máquina com endereço IP real (uma instância do Amazon Linux) A1 e estou na minha máquina local pessoal L1 e tenho um pequeno servidor rodando em casa L2

como posso ssh em L2 de L1 como eu faço para A1? se L2 não tiver IP real ...

Estou executando muitos microservices java em máquinas aws, todos esses serviços não precisam ser ampliados, não preciso de nenhum dos recursos sofisticados que os provedores de nuvem oferecem, mas quanto mais serviços eu executo, maior meu conta recebe e a comunicação mais complicada entre eles ...

Então, quero agora comprar uma máquina com muita RAM e CPU, executar todos os serviços nela e evitar o uso da AWS ou de qualquer provedor ... Eu tenho scripts diferentes que irão ssh no host remoto e fazer algum trabalho relacionado à implantação ... Eu quero que eles ainda operem com L2 quando eu os executar a partir de uma máquina pessoal ...

Se houver maneiras mais simples de fazer isso, sugira. Mas por enquanto eu vejo duas soluções, ou eu recebo endereço IP real do operador, ou eu uso aws ou alguma máquina fictícia com IP real para conectar duas máquinas L1 e L2 ...

Eu dificilmente fiz qualquer administração de qualquer infraestrutura, então me perdoe se for uma questão noob ...

    
por vach 23.08.2017 / 08:41

3 respostas

1

Se o seu servidor L2 estiver na sua rede doméstica, ele estará atrás do roteador e não ficará visível na Internet por padrão (o que significa que nenhuma máquina na Internet poderá abrir uma conexão com ele). Como dito acima, ele está em sua rede doméstica local com um endereço de 10. . . * Ou 192.168. .

Do ponto de vista da Internet (e isso inclui o seu sistema L1 quando você não está em casa) o único dispositivo com um verdadeiro endereço na Internet é o seu roteador, e todas as suas máquinas domésticas conectadas à Internet parecem ter aquele endereço (para que você possa obter o endereço de Internet do seu roteador, indo para algum site como o showmyip.net com o seu navegador de Internet). O benefício da configuração é que o hacker aleatório não pode abrir uma conexão com suas máquinas.

Normalmente você pode pedir ao seu roteador para encaminhar solicitações de conexões para alguma porta (por exemplo, SSH) para uma máquina específica (endereço IP) em sua rede local, para que o SSH-ing no seu endereço de Internet de qualquer lugar na Internet realmente se conecte você para o seu servidor L2. Veja o exemplo de instruções aqui .

Note que isto pode não ser uma boa idéia (porque se você cometer um erro você pode abrir sua rede doméstica para hackers e se algo de ruim acontecer, seu endereço de Internet pode estar na lista negra). Isso também requer que você tenha um endereço de rede fixo (ou que você possa encontrar seu novo endereço facilmente quando ele mudar). O servidor hospedado ainda é geralmente uma solução melhor, mas a AWS não é o único provedor, você pode obter servidores VPS Linux barebones por US $ 5 por mês.

    
por 23.08.2017 / 09:18
3

Este é exatamente o tipo de problema que o encaminhamento remoto do SSH resolve.
Isso requer que você tenha um A1, uma máquina que tenha um IP real. Uma máquina com recursos muito limitados é boa, pois só funciona como uma placa de salto.
Como L2 não tem um IP real, você precisa iniciar uma conexão ssh de L2 para A1 e criar um túnel:

root@L2# ssh user@A1 -R 9022:localhost:22   

Portanto, agora, sempre que uma conexão atinge a porta 9022 na A1, ela é encaminhada para a porta 22 na L2.
Agora você pode 1) SSH para A1 2) de lá SSH para localhost 9022

Você pode fazer alguns ajustes nesta solução, por exemplo, reinicializar automaticamente a conexão de L2 para A1 quando desconectado. por exemplo, deixe o SSH escutar na porta 9022 no IP real em vez do endereço de loopback (requer a edição da configuração SSHD).

    
por 23.08.2017 / 09:10
0

Guia para se conectar ao computador doméstico por ssh da internet:

  1. Se você tem um ip estático por trás do roteador, pode se conectar ao seu computador doméstico pela internet
  2. Encaminhe 22 portas em seu roteador, aqui está um exemplo de como fazer isso
  3. Instale o openssh-server em sua máquina local:

    sudo apt instala o openssh-server

  4. Permitir conexão à porta 22 para a máquina local:

    iptables -A ENTRADA -p tcp --dport 22 -j ACCEPT

  5. Teste sua conexão de uma máquina remota usando o telnet:

    telnet you_external_ip 22

  6. Conecte-se à máquina local usando ssh:

    ssh your_external_ip

  7. Para uma conexão de segurança, você pode configurar o ssh autenticação de dois fatores

por 24.08.2017 / 13:00