As portas da base de dados (3306 para o MySQL, 5432 para o PostgreSQL) não estão abertas de fora. Um túnel SSH resolve isso: abre uma porta no seu computador que leva, por dentro do SSH, até à base no servidor. Para o cliente de base de dados, a ligação é a 127.0.0.1.
Passo a passo
| 1 |
Confirme que tem SSH. Na hospedagem partilhada a porta é a 2299, e nem todas as contas têm shell. O endereço do servidor e o utilizador estão em dados de acesso ao cPanel.
|
|
| 2 |
Abra o túnel num terminal do seu computador (Linux, macOS, ou o Windows 10 e 11, que trazem o ssh). Para o MySQL:ssh -N -p 2299 -L 3307:127.0.0.1:3306 utilizador@servidor
|
|
| 3 |
Para o PostgreSQL, a mesma ideia com outras portas:ssh -N -p 2299 -L 5433:127.0.0.1:5432 utilizador@servidor
|
|
| 4 |
Deixe a janela aberta. O -N diz ao SSH para não abrir uma shell, só o túnel. Escreva a palavra-passe quando pedida.
|
|
| 5 |
No cliente (MySQL Workbench, DBeaver, HeidiSQL, psql), ligue-se a 127.0.0.1, porta 3307 (ou 5433), com o utilizador e a palavra-passe da base, e não os do SSH.
|
|
| 6 |
Quando acabar, feche a janela do túnel com Ctrl+C.
|
|
| Campo |
Valor |
Porquê |
Porta local (-L) |
3307 ou 5433 |
Uma porta livre do seu computador. Usamos números diferentes dos do servidor para não chocar com uma base que já tenha instalada. |
| Destino |
127.0.0.1:3306 ou :5432 |
Visto do servidor. É a base, no próprio servidor. |
| Utilizador da base |
o nome completo, com prefixo |
O túnel entra pelo SSH, mas a base pede o seu utilizador. |
| Servidor no cliente |
127.0.0.1 |
Não é o IP do servidor: o cliente fala com a porta local do túnel. |
Se o túnel abre mas o cliente não liga, as causas habituais são três: o cliente aponta ao IP do servidor e não a 127.0.0.1; a porta local escolhida já está em uso (troque o número); ou o utilizador da base é escrito sem o prefixo da conta. Se o SSH nem entra, veja as quatro causas habituais.
|
Clientes que abrem o túnel por si
Não precisa de abrir o túnel à mão. O MySQL Workbench tem o método de ligação Standard TCP/IP over SSH, e o DBeaver tem um separador SSH na ligação: preenche o servidor e a porta do SSH, o utilizador e a palavra-passe do SSH, e depois os dados da base como se ela estivesse no mesmo computador. Na primeira ligação o SSH pergunta se confia na impressão digital do servidor: confirme-a e responda que sim. Quando puder, use uma chave SSH em vez de palavra-passe.
Túneis que caem? Acrescente -o ServerAliveInterval=60 ao comando para o SSH manter a ligação viva. Em Windows, o PuTTY faz o mesmo em «Connection, SSH, Tunnels». E se a sua rede muda de IP, o túnel não se queixa: basta voltar a abri-lo.
|
|
O túnel abre e a base continua inacessível? Diga-nos o cliente que usa e a mensagem de erro e vamos ver.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Servidor VPS com acesso root Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 456,30 MT/mês (plano de 3 anos, com cupão) Ver planos |