Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Criar um túnel SSH para acesso remoto MySQL


Este guia mostrará como fazer uma conexão segura com seu servidor MySQL ou MariaDB remoto a partir de seu computador local, usando um túnel SSH . Isso é útil se você deseja usar ferramentas de administração em seu computador local para trabalhar em seu servidor.



Um túnel SSH é um túnel criptografado feito por meio de uma conexão de protocolo SSH. Você pode usar um túnel SSH para se comunicar remotamente com o banco de dados MySQL. Após seguir estas instruções, você poderá se conectar ao localhost em sua estação de trabalho usando sua ferramenta de gerenciamento MySQL favorita. A conexão será encaminhada com segurança para o seu Linode pela Internet.
Observação O MariaDB é um fork do MySQL e considerado um substituto imediato. Embora este guia se refira ao MySQL, ele se aplica igualmente ao MariaDB.

Pré-requisitos

  • O MySQL está instalado.
  • O MySQL está configurado para escutar em localhost (127.0.0.1). Isso é ativado por padrão.

Como acessar o MySQL remotamente criando um túnel SSH com PuTTY


Esta seção mostrará como criar um túnel SSH para MySQL no Windows, usando a ferramenta PuTTY.

Configurando o túnel


Primeiro, você precisa estabelecer uma conexão básica com seu Linode:

  1. Baixe PuTTY.

  2. Salve o PuTTY em sua área de trabalho.

  3. Clique duas vezes no arquivo PuTTY para começar - não há necessidade de instalar. Você verá a seguinte janela:



  4. Digite o nome do host ou endereço IP do seu Linode no Nome do host (ou endereço IP) campo.

  5. No menu à esquerda, vá para Conexão -> SSH -> Túneis .

  6. Na porta de origem campo, digite 3306 .

  7. No Destino campo, digite 127.0.0.1:3306 . Veja a configuração final abaixo:



  8. Clique em Abrir para iniciar a sessão SSH.

  9. Se você ainda não fez login neste sistema com o PuTTY, receberá um aviso semelhante ao seguinte. Verifique se este servidor é aquele ao qual você deseja se conectar e clique em Sim :


    Observação
    Este aviso aparece porque o PuTTY quer que você verifique se o servidor no qual você está fazendo login é quem ele diz ser. É improvável, mas possível, que alguém possa estar espionando sua conexão e se passando por seu Linode. Para verificar o servidor, compare a impressão digital da chave mostrada no aviso do PuTTY - a sequência de números e letras começando com ssh-rsa na imagem acima - com a impressão digital da chave pública do seu Linode. Para obter a impressão digital do seu Linode, faça login no seu Linode através do console Lish (consulte o Console tab no Linode Manager) e executando o seguinte comando:
    ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
    

    As impressões digitais principais devem corresponder. Depois de clicar em Sim , você não receberá mais avisos, a menos que a chave apresentada ao PuTTY seja alterada por algum motivo; normalmente, isso só deve acontecer se você reinstalar o sistema operacional do servidor remoto. Se você receber este aviso novamente para o mesmo Linode após a chave já ter sido armazenada em cache, você não deve confiar na conexão e investigar mais a fundo.

  10. Direcione seu cliente MySQL local para localhost:3306 . Sua conexão com o servidor MySQL remoto será criptografada por meio de SSH, permitindo que você acesse seus bancos de dados sem executar o MySQL em um IP público.

Crie um túnel SSH no Mac OS X ou Linux


Esta seção mostrará como criar um túnel SSH para MySQL no Mac OS X ou Linux.

  1. Instale um cliente MySQL. A instalação do servidor MySQL vem pré-empacotada com a instalação do cliente. Para instalar apenas o cliente:

    Mac OS
    brew install --cask mysql-shell
    

    Ubuntu/Debian
    sudo apt install mysql-client
    

  2. Abra um prompt de comando e execute o comando a seguir para abrir o túnel SSH.
    ssh [email protected] -L 3306:127.0.0.1:3306 -N
    

    Substitua <[email protected]> com seu nome de usuário SSH e o nome de host ou endereço IP do seu servidor. A longa sequência de números no comando lista o IP local, a porta local, o IP remoto e a porta remota, separados por dois pontos (: ).

    -L - vincula uma porta local à postagem do host remoto.-N - significa encaminhar portas.
    Observação
    Se você já estiver executando um servidor MySQL local em sua estação de trabalho, use uma porta local diferente (3307 é uma escolha comum). Seu novo comando ficaria assim:
    ssh [email protected] -L 3307:127.0.0.1:3306 -N
    

  3. Abra uma nova janela de terminal. Direcione seu cliente MySQL local para 127.0.0.1:3306 com o nome de usuário e senha do servidor MySQL.

    Mac OS
    mysqlsh --host=127.0.0.1 --port=3306 -u user -p
    

    Ubuntu/Debian
    mysql --host=127.0.0.1 --port=3306 -u user -p
    

    Sua conexão com o servidor MySQL remoto será criptografada por meio de SSH, permitindo que você acesse seus bancos de dados sem executar o MySQL em um IP público.

  4. Quando estiver pronto para fechar a conexão, emita um CTRL-C comando ou feche a janela do prompt de comando. Isso fechará o túnel SSH.

Conexões SSH persistentes


Se você precisar de um túnel SSH persistente, considere usarautossh. autossh inicia e monitora uma conexão SSH e a reinicia se necessário.

Mais informações


Você pode querer consultar os seguintes recursos para obter informações adicionais sobre este tópico. Embora estes sejam fornecidos na esperança de que sejam úteis, observe que não podemos garantir a precisão ou pontualidade dos materiais hospedados externamente.
  • Usando PuTTY
  • Documentação do MySQL
  • Documentação do MariaDB
  • autossh