Configurando SSH pela Internet no meu Pi

16

Essa pode ser uma pergunta simples, mas como li informações contraditórias de vários recursos (o que? Contradições na internet?), Queria saber se fiz tudo o que deveria.

Então, eu quero configurar uma conexão SSH com o meu RasPi para que eu possa acessá-lo pela Internet.

  1. Comecei ativando o SSH no Pi, executando o Raspbian, usando a raspi-configferramenta
  2. Em seguida, instalei o cliente no-ip.com no meu Pi para ter um nome de host apontando para o meu endereço IP dinâmico.
  3. Procurei meu ip da LAN na minha framboesa usando ifconfig
  4. Finalmente, no utilitário de configuração do meu roteador, em encaminhamento de porta, ativei o encaminhamento da porta 22 no TCP e UDP para o ip local do meu pi.

Depois disso, eu não consigo SSH para o meu pi via internet. Funciona quando tento conectar- me dentro da minha LAN usando meu IP local, mas não usando meu nome de host ou endereço IP da Internet. Eu também tentei conectar de um local diferente e nada funciona.

Minha pergunta: estou perdendo alguma etapa? Existem arquivos de configuração que devo editar no meu pi para que tudo funcione?

Zeta
fonte
Por favor inclua a saída do iptables -Lseu Pi.
deed02392
11
Você já resolveu esse problema? Em caso afirmativo, você pode marcar a resposta que a resolveu ou criar uma resposta automática informando o que fez e depois marcar como resposta? Isso seria ótimo, pois estamos tentando obter o site Q: Uma proporção alta e essa pergunta parece ter sido deixada por um tempo sem ser tocada por você @Zeta. Obrigado!
RPiAwesomeness 23/03
Estou usando no-ip.com para conectar-se ao meu Pi pela Internet para web e ssh, para que seja possível, talvez o seu roteador ou ISP esteja bloqueando o tráfego de entrada?
Alastair Montgomery
Isso parece muito com um roteador que não suporta loopback NAT.
Flakeshake
Encontrei este link: raspberryanywhere.com Talvez possa ser de alguma ajuda. Uso o serviço há várias semanas e funciona muito bem! O link fornece um simples visualizador de equipe de software, para acessar sua placa de framboesa em qualquer lugar. Além disso, você pode usar seu cliente SSH habitual; eles apenas fornecem um endereço virtual para conectar-se à sua placa via SSH ou HTTP. Vale a pena tentar com certeza!
Stefano Stefano

Respostas:

12

Se você planeja conectar-se apenas ao seu Raspberry Pi via SSH pela Internet, provavelmente o ngrok.com pode atender seu problema da maneira mais confortável.

Encaminha sua porta (s) com algum tipo de túnel invertido e pode até ajudar a contornar firewalls ou restrições do seu ISP. Você precisa se registrar (gratuitamente) no site para encaminhar o tráfego TCP.

Eu não sou afiliado a este projeto de forma alguma; Eu apenas o usei para realizar a mesma idéia (no meu caso encaminhando um servidor OpenVPN) e até agora não encontrei nenhum problema.

Slubbix
fonte
Eu também tive esse problema e usei o serveo.net ainda mais fácil que o ngrok. Totalmente grátis, 0 config basta colar no comando 22 port com um alias personalizado e conectar.
Madhava Jay
3

Parte do seu problema pode ser que, porque o Pi está usando um IP dinâmico do DHCP no seu roteador, o encaminhamento de porta configurado não está funcionando, pois o IP local do Pi mudou.

A maneira mais simples de corrigir isso (pelo menos que eu já vi) é configurar um IP estático. É relativamente simples, desde que você não se importe em mexer em um arquivo de configuração. Você pode ler um pouco mais em profundidade aqui e aqui . Também vou explicar a maneira simples abaixo:

  1. Conecte-se ao seu Pi via SSH em sua rede doméstica ou por uma tela, ou funciona.

  2. Pegue uma caneta e um pouco de papel, você escreverá algumas informações.

  3. Execute o comando ifconfig. Sei que você já o executou, mas precisamos coletar um pouco mais de informações que o seu IP local neste momento. Isso revela as informações do roteador, o bit que você deseja é após eth0 (a conexão ethernet). . . .

    eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:fc:2c
              inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
    

    Anote as seguintes informações ...

    inet addr – 192.168.1.81 (Pi's Current IP Address)
    Bcast –  192.168.1.255 (The Broadcast IP Range)
    Mask –  255.255.255.0 (Subnet Mask Address)
    

    Obviamente, a sua informação será diferente a partir deste tutorial, por isso certifique-se de usar o seu informações do ifconfigcomando executado no Pi.

  4. Agora corra netstat -nrou route -n. Nós precisamos:

    Endereço 'Gateway' - 192.168.1.254 Endereço
    'Destination' - 192.168.1.0

  5. Agora que temos essas informações, podemos editar o arquivo de interfaces para configurar o IP dinâmico. Corra sudo nano /etc/network/interfaces. Deve ser algo como isto:

    arquivo de interfaces

  6. Mude a linha:

    iface eth0 inet dhcp
    

    para

    iface eth0 inet static
    

    Em seguida, diretamente abaixo desta linha, digite o seguinte ( Observe. Você precisará de seus próprios endereços que reunimos acima ). . . .

    address 192.168.1.81
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    Basicamente, a parte do endereço é o que você deseja que seu IP seja. Quanto maior, melhor, pois há menos chances de conflitos de IP. netmask - O endereço 'Mask' que escrevemos anteriormente.

    rede - O endereço IP do roteador, este é o endereço 'Destino' encontrado anteriormente. Você também pode tirar isso do seu roteador, deve dizer do lado em algum lugar.

    broadcast - O endereço 'Bcast' que escrevemos anteriormente.

    Gateway - Este é o endereço 'gateway' encontramos anteriormente.

    Pressione Ctrl+ Oe ou Enterou Ye depois Enter. Depois de fazer isso, pressione Ctrl+ X.

  7. Execute sudo reboote seu IP deve estar no lugar! Efetue login novamente e execute o ifconfigcomando novamente, e deve ficar assim agora:

    fantasia!

Em seguida, configure o encaminhamento da porta para o seu novo IP estático e tudo funcionará! Melhor da sorte!

RPiAwesomeness
fonte
2
A pessoa que fez o voto negativo pode explicar o porquê? Eu acho que essa é uma solução perfeitamente válida e viável. Gostaria de saber por que, para melhorar minha resposta.
RPiAwesomeness
11
Isso funcionará apenas na rede local e não de fora. O OP perguntou como se conectar ao Pi pela Internet e não da mesma rede.
Chinmay Sarupria
Um endereço como 192.168.1.100 é um endereço local, eu poderia ter 2 Pi's em 2 partes diferentes da cidade com o mesmo endereço local. Então, é claro, não poderei acessar nenhum deles de fora da rede.
Chinmay Sarupria
Se você der ao seu RPi um endereço IP estático, exclua-o do pool DHCP, caso contrário, outro dispositivo em sua rede poderá obtê-lo e você terá um conflito de IP.
Dmitry Grigoryev
2

A única coisa que você parece ter configurado incorretamente é que o SSH é um protocolo somente TCP, portanto, não é necessário encaminhar o tráfego UDP na porta 22.

Agora, o motivo pelo qual ele não parece funcionar é provavelmente porque seu roteador não suporta loopback NAT . O que isso significa é que as regras NAT (como a de encaminhamento) não se aplicam quando a origem da conexão é da sua LAN interna. Nem todos os roteadores têm esse recurso ativado. Portanto, se o seu roteador não suportar loopback NAT, você não poderá se conectar ao seu RPi usando SSH ao usar o nome de domínio no-ip.com e ao fazê-lo na sua LAN .

Para tentar se sua configuração está funcionando, se você possui um smartphone com alguma conexão de dados (3G, LTE etc.) e se há um cliente ssh, tente conectar-se ao seu RPi usando o plano de dados e não a sua conexão WiFi. Se você não possui um cliente ssh e tem permissão para fazer o compartilhamento, use o smartphone junto com um de seu computador desconectando-o da rede local e usando o link de compartilhamento.

Huygens
fonte
0

Tente usar um nome de domínio livre, por exemplo co.cc ou similar, e freeDNS (eles também fornecer uma grande variedade de subdomínios) para apontar para o seu router. Eu acho que você também pode obter um script de atualização caso o seu roteador tenha um IP dinâmico.

Se isso não funcionar, talvez as configurações do seu encaminhamento de porta estejam incorretas? Que tipo de roteador você tem?

Samadi
fonte
Try using a free domain name...Ele fez isso, é isso que o cliente no-ip é. É muito mais simples do que ter que mexer com DNS e roteadores manuais.
RPiAwesomeness
@RPiAwesomeness Desculpe, não sabia disso.
Samadi 23/03
Sem problemas. Eu estava apenas cumprindo meu dever de ser um membro do Stack Exchange e moderar o site. É apenas um pouco de crítica útil. Por favor, não tome isso como um ataque a você, estou apenas tentando ajudar a manter o conteúdo deste site útil e informativo. Por favor, continue tentando ajudar, responder perguntas e se envolver. Você começará a obtê-lo. :) Além disso, entre no chat de vez em quando. As pessoas que adoram ter companhia, e isso mostra que este site é útil e próspero e possui uma boa base de usuários envolvida.
RPiAwesomeness 23/03
0

Eu tenho essa situação aqui na Finlândia: o rpi está conectado ao roteador wifi móvel, huawei e5776, e quero conectar-me ao rpi com SSH pela internet, sem sucesso até agora e, finalmente, sei que é meu provedor de serviços de Internet que está bloqueando as conexões bidirecionais para clientes de banda larga móvel. O tráfego bidirecional para eles é um serviço extra (pelo qual você deve pagar) chamado de portão aberto pelo meu ISP. Então vá ao seu próprio site de ISPs para ver se é esse o caso.

toomanyhours
fonte
0

O Slubbix apontou para um possível problema de que o endereço IP local do Raspberry Pi não foi corrigido. Isso tornaria a porta encaminhada no seu roteador não confiável. Por padrão, o Raspberry Pi está configurado para usar o DHCP. Isso significa que o IP é fornecido pelo roteador. Esse IP por padrão também não é fixo.

Uma solução para esse problema já é indicada pelo Slubbix : corrigir o IP do Raspberry Pi.

Na minha opinião, isso tem duas desvantagens: não há uma lista global de IPs em sua rede que seja facilmente mantida e você não pode usar o Raspberry Pi em outra rede (IP já em uso ou submascarada diferente).

Portanto, proponho o seguinte: configure seu roteador para atribuir um IP fixo ao endereço MAC do seu Raspberry Pi. O endereço MAC pode ser encontrado usando o comandoifconfig

Wouter van der Put
fonte
0

O endereço IP local do seu Raspberry Pi não é fixo, a menos que você esteja usando um adaptador sem fio para conectar-se, o que manterá seu endereço IP. Se você deseja usar o SSH para o RPI, pode seguir estas etapas:

Inicie seu Pi no prompt do terminal. Digite o seguinte comando "sudo apt-get install xrdp" Se promovido, digite sua senha (o padrão é "raspberry") Digite "Y" e pressione Enter. Agora, está instalando o xrdp no seu Pi, que é o software que vamos usar para a conexão da área de trabalho remota. Aguarde a conclusão. Reinicie seu Pi. Vamos verificar se o xrdp será iniciado automaticamente. Quando o Pi for inicializado no prompt de comando, procure [ok] Iniciando o servidor de Protocolo de Área de Trabalho Remota: xrdp sesman. Isso mostra que o xrdp está instalado e inicializando automaticamente na inicialização do seu Pi. O último passo é anotar o endereço IP do seu Pi, que também deve ser exibido na tela de inicialização. No meu caso abaixo, é 192.168.1.9.

Segunda configuração da máquina

  1. Inicie a Conexão de Área de Trabalho Remota, que pode ser encontrada em Iniciar-> Todos os Programas-> Acessórios-> Conexão de Área de Trabalho Remota
  2. Digite o endereço IP para o seu Pi, que você anotou acima.

  3. Clique em Conectar (você pode receber um aviso de segurança nesse estágio, basta clicar em OK, se o fizer. Afinal, é o seu Pi na sua rede, para que nada se preocupe com a segurança).

  4. Deixe o módulo no padrão do sesman-Xvnc e digite seu nome de usuário e senha para o seu Pi. (O padrão é pi e framboesa, se você não os tiver alterado).

  5. Clique em OK e, depois de alguns instantes, você será recebido na área de trabalho do seu Raspberry Pi!

  6. Quando terminar, basta sair da área de trabalho do Pi.

Encontrei estes passos daqui e eles trabalharam para mim

Aqui está outra maneira de usar o SSH:

SSH no Raspberry Pi Geralmente, faço o login no meu Raspberry Pi via SSH ou Secure Shell para fornecer o nome completo. Isso permite o acesso da linha de comando ao seu Raspberry Pi a partir de outro computador. Embora seja possível fazer o SSH no Raspberry Pi de qualquer lugar do mundo, e eu faço, este post aborda apenas o acesso SSH pela rede local. Cobrirei a conexão remota em uma futura postagem no blog.

Embora isso não dê acesso a uma GUI (Interface Gráfica do Usuário), ter acesso à linha de comando geralmente me permite fazer 95% do que eu preciso fazer. Os outros 5% que eu provavelmente poderia fazer através do SSH, mas às vezes você não consegue superar o conforto de uma GUI. :-)

Antes de tudo, você precisa saber o endereço IP do Raspberry Pi no qual deseja fazer login. Se você não souber como encontrar isso, leia meu post do blog explicando como você pode fazer isso remotamente usando uma excelente ferramenta chamada nmap.

Para fazer o SSH no seu Raspberry Pi a partir de um computador Linux ou Apple Mac, isso é muito fácil. Você pode apenas digitar seu nome de usuário e endereço IP na linha de comando usando o seguinte formato:

ssh username @ IPaddress

Certifique-se de substituir o nome de usuário pelo nome com o qual você deseja efetuar login no computador remoto. O endereço IP deve assumir o formato 192.168.1.66

Você pode receber uma mensagem explicando que a autenticidade do host não pode ser estabelecida e se tem certeza de que deseja continuar a conexão. Você verá esta mensagem somente na primeira vez que fizer o SSH no seu Raspberry Pi. Basta digitar yes.

Você será solicitado a fornecer sua senha, digite a senha do nome de usuário com o qual você está tentando se conectar.

Para o Windows, é um pouco mais complicado de configurar, pois requer um software adicional chamado PuTTY. No entanto, uma vez instalado, é realmente simples de usar.

Primeiro, acesse o site da PuTTY, www.putty.org, faça o download e instale o software.

Uma vez instalado, carregue o PuTTY

Em Nome do host (ou endereço IP), digite o endereço IP ao qual você deseja se conectar. Selecione o botão de opção SSH. Na caixa em Sessões salvas, digite um nome para identificar este computador, como Raspberry Pi, e clique em Salvar. Clicar em Abrir agora deve iniciar sua sessão SSH.

Da próxima vez que você quiser fazer o SSH no seu Raspberry Pi, basta carregar o PuTTY, clicar na sessão salva para destacá-la e, em seguida, clicar em Abrir. Depois de digitar sua senha, quando solicitado, você terá acesso remoto ao seu Raspberry Pi.

Encontrei estas instruções a partir daqui

Humano
fonte
Eu não consigo ver como estas instruções de ajuda no acesso ao RPI pela Internet
Dmitry Grigoryev
0

Uma coisa que notei na minha Internet é que, quando eu encaminhava meu servidor da Web e tentava me conectar a ele usando meu IP público, ele dizia que não estava disponível, mas quando conecto a ele no meu telefone ou na rede da minha escola Eu sou capaz de conectar a ele, também uma coisa que você pode tentar fazer é acessar o google e digitar "IP" na barra de pesquisa, copiar o ip que ele fornece e, em seguida, acessar o google tradutor e colar no seu ip, e em seguida, clique no endereço IP azul na janela da direita e isso deve mostrar se você encaminhar com êxito o servidor da web.

Austinthemighty
fonte
0

Para permitir o tráfego de entrada na porta SSH padrão (22), você pode dizer ao iptables para permitir a entrada de todo o tráfego TCP nessa porta.

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Voltando à lista acima, você pode ver que isso diz ao iptables:

  1. anexar essa regra à cadeia de entrada ( -A INPUT), para ver o tráfego recebido
  2. verifique se é TCP ( -p tcp).
  3. Nesse caso, verifique se a entrada vai para a porta SSH ( --dport ssh).
  4. Nesse caso, aceite a entrada ( -j ACCEPT).

Espero que isso funcione para você também, você pode adicionar as portas ftp que são 20-21, basta alterar o sshpara 20e 21.

Austinthemighty
fonte
0

Não tenho certeza se esta pergunta precisa de respostas adicionais, mas é bastante simples.

  1. Instale o OpenSSH ou ative-o em raspi-config

  2. Vá para a página inicial do seu roteador / firewalls no meu caso 192.168.1.1

  3. Procure o encaminhamento de porta ou servidores virtuais e adicione algo como o seguinte:

    Início da porta externa: 1234 Fim da porta externa: 1234

    Início e fim da porta interna 22.

    IP do servidor é o IP estático do seu RPi no meu caso 192.168.1.50

  4. Quando tudo estiver configurado no lado do roteador, anote seu IP da WAN pesquisando seu IP no Google.

  5. Agora você deve poder fazer o SSH para o pi pela internet. No meu caso, estou usando um Chromebook e o shell seguro é adicionado. Eu digito o nome de usuário no meu caso pi@mywanipe a porta 1234.

Basicamente, a regra do firewall na etapa 3 encaminha todo o tráfego na porta 1234 da WAN IP para a porta 22 da LAN interna.

Hani Umer
fonte
-1

Eu lutei bastante com a configuração do SSH via internet até encontrar esse método simples:

http://raspctl.com

Basta registrar e copiar e colar os comandos. Você pode precisar editar um arquivo de configuração, mas é isso. Eu testei hoje e funciona como charme. Também tentei com diferentes aplicativos para Android SSH.

alkopop79
fonte
Esqueceu de mencionar: defina o encaminhamento de porta no seu roteador!
alkopop79
11
FYI: Esse projeto parece ter sido descontinuado.
bobstro