Guia de tecnologias

SSH no Mac pelo Terminal: guia prático

7 min read Guias Atualizado 25 Sep 2025
SSH no Mac: Guia prático pelo Terminal
SSH no Mac: Guia prático pelo Terminal

Diagrama de uso do SSH no Mac via Terminal com cliente e servidor

O que é SSH (em uma linha)

SSH (Secure Shell) é um protocolo que cria um canal criptografado para acessar e controlar remotamente outro computador ou servidor.

Por que usar SSH no Mac

  • Segurança: criptografia entre cliente e servidor.
  • Produtividade: permite executar comandos remotos e automatizar tarefas.
  • Transferência de arquivos segura com scp/sftp.
  • Compatível com a maioria dos serviços e servidores Unix/Linux.

1. Abrindo o Terminal

Existem duas formas rápidas de abrir o Terminal no macOS:

  • Usando o Spotlight: pressione Command + Espaço, digite Terminal e pressione Enter.
  • Usando o Finder: Aplicativos > Utilitários > Terminal.

Dica: você pode adicionar o Terminal ao Dock arrastando o ícone a partir de Aplicativos > Utilitários.

2. Iniciando uma conexão SSH

  1. Localize o nome de usuário no servidor remoto (por exemplo, “ubuntu”, “ec2-user” ou seu usuário personalizado) e o endereço IP ou domínio do servidor.
  2. No Terminal, execute:
ssh usuario@ip-ou-dominio

Substitua usuario pelo seu nome de conta remota e ip-ou-dominio pelo IP (por exemplo 203.0.113.5) ou hostname (por exemplo exemplo.com).

  • Na primeira conexão o Terminal pedirá para confirmar a autenticidade do host. Digite yes e pressione Enter.
  • Em seguida será solicitada a senha, a qual não aparece enquanto você digita. Se você configurou chaves SSH, a senha pode não ser solicitada.

Importante: se a porta SSH no servidor não for a padrão (22), especifique-a com -p:

ssh -p 2222 usuario@ip-ou-dominio

3. Autenticação por chave (sem senha)

A autenticação por chave reduz riscos e facilita logins automatizados.

Gerar par de chaves (no seu Mac):

ssh-keygen -t rsa -b 4096 -C "[email protected]"
  • Aceite o caminho padrão (~/.ssh/id_rsa) ou escolha outro.
  • Opcional: defina uma passphrase para proteger a chave privada.

Copiar a chave pública para o servidor remoto:

ssh-copy-id usuario@ip-ou-dominio

Se ssh-copy-id não estiver disponível, use:

cat ~/.ssh/id_rsa.pub | ssh usuario@ip-ou-dominio "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Verifique permissões no servidor: ~/.ssh com 700 e authorized_keys com 600.

4. Transferindo arquivos com scp e sftp

Exemplos comuns:

Copiar arquivo local para servidor:

scp /caminho/arquivo.txt usuario@ip-ou-dominio:/caminho/remoto/

Copiar do servidor para a máquina local:

scp usuario@ip-ou-dominio:/caminho/remoto/arquivo.tar.gz /caminho/local/

Para transferências interativas use sftp:

sftp usuario@ip-ou-dominio
sftp> get /caminho/remoto/arquivo
sftp> put /caminho/local/arquivo
sftp> bye

Se precisar de desempenho melhor em transferências grandes, considere rsync sobre SSH:

rsync -avz -e "ssh -p 2222" /caminho/local/ usuario@ip:/caminho/remoto/

5. Comandos essenciais dentro da sessão SSH

  • cd diretório — mudar para diretório.
  • ls — listar arquivos.
  • mkdir diretório — criar pasta.
  • rm arquivo — remover arquivo (use -r para recursivo).
  • cp origem destino — copiar.
  • mv origem destino — mover/renomear.
  • top ou htop — ver uso de CPU/memória.
  • tail -f arquivo — acompanhar logs em tempo real.

Cheat sheet rápido (copie para referência):

# conectar
ssh usuario@host
# porta não padrão
ssh -p 2222 usuario@host
# gerar chave
ssh-keygen -t rsa -b 4096
# copiar chave
ssh-copy-id usuario@host
# copiar arquivo para o servidor
scp arquivo.txt usuario@host:/home/usuario/
# copiar do servidor
scp usuario@host:/var/log/syslog ./
# rsync eficiente
rsync -avz -e ssh ./ pasta_remota:/backup/

6. Encerrando a sessão SSH

Métodos para sair do shell remoto:

  • Digite exit e pressione Enter.
  • Pressione Control + D.
  • Se a sessão travar, você pode fechar o terminal ou usar o escape do ssh: Enter ~ . (apenas se necessário).

7. Segurança e endurecimento (checklist)

  • Use autenticação por chave sempre que possível.
  • Desative logins por senha no servidor (em /etc/ssh/sshd_config: PasswordAuthentication no).
  • Troque a porta padrão 22 por outra porta quando adequado, mas não confie só nisso.
  • Use um firewall (ufw, iptables) para permitir apenas IPs/portas necessárias.
  • Configure o Fail2Ban para bloquear tentativas repetidas.
  • Mantenha o OpenSSH atualizado no servidor e no macOS.
  • Revise e limite o arquivo authorized_keys; use options (from=, no-agent-forwarding) quando necessário.

Exemplo parcial de /etc/ssh/sshd_config relevante:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 2222
AllowUsers seu_usuario outro_usuario

8. Quando o SSH falha — problemas e soluções rápidas

  • Erro “Connection refused”: o serviço SSH pode não estar rodando no servidor ou a porta está bloqueada. Verifique sshd no servidor e firewall.
  • Erro “Permission denied (publickey)”: chave pública ausente ou permissões incorretas. Verifique ~/.ssh/authorized_keys e permissões (700/600).
  • Erro de timeout: problemas de rede, IP incorreto ou porta bloqueada. Teste com ping e telnet/ip: 2222.
  • Host key changed warning: pode indicar troca legítima de servidor ou ataque man-in-the-middle. Confirme com o administrador e, se seguro, remova a linha correspondente em ~/.ssh/known_hosts e reconecte.

9. Alternativas e cenários avançados

  • Usar mosh para sessões mais tolerantes a perda de conexão (bom para conexões móveis instáveis).
  • Tunelamento (port forwarding): encaminhe portas locais para serviços remotos.

Exemplo de tunnel local (acessar serviço remoto localhost:8080 como local:8080):

ssh -L 8080:localhost:8080 usuario@servidor

Túnel inverso (expor porta local em servidor remoto):

ssh -R 9000:localhost:3000 usuario@servidor

10. Role-based checklists

Para desenvolvedores:

  • Gerar chave SSH com passphrase.
  • Adicionar chave ao ssh-agent: ssh-add ~/.ssh/id_rsa.
  • Criar entry no ~/.ssh/config para atalhos.

Exemplo ~/.ssh/config:

Host prod
  HostName exemplo.com
  User deploy
  Port 2222
  IdentityFile ~/.ssh/id_rsa

Para administradores de sistema:

  • Auditar authorized_keys regularmente.
  • Configurar autenticação multifator quando possível.
  • Automatizar deploy de chaves com ferramentas de config management.

Para entusiastas e iniciantes:

  • Usar chaves e manter backup seguro da chave privada.
  • Praticar com uma VM local antes de tocar servidores de produção.

11. Mini-metodologia para conectar com segurança (3 passos)

  1. Preparar: gerar chave, testar conexão localmente, garantir backup da chave.
  2. Implantar: copiar a chave pública para o servidor com ssh-copy-id ou manualmente.
  3. Verificar: checar login sem senha, revisar permissões e ajustar sshd_config.

12. Caixa de fatos rápidos

  • Porta padrão do SSH: 22.
  • Algoritmos de chave recomendados: RSA 2048/4096, ou ed25519.
  • Arquivos chave no macOS: ~/.ssh/id_rsa (privada), ~/.ssh/id_rsa.pub (pública).
  • Permissões seguras: ~/.ssh = 700; authorized_keys = 600.

13. Glossário (uma linha cada)

  • SSH: protocolo para shell remoto criptografado.
  • scp: utilitário para cópia segura via SSH.
  • sftp: subsistema interativo para transferir arquivos sobre SSH.
  • ssh-agent: serviço que armazena chaves em memória para evitar digitar passphrase repetidamente.

Perguntas frequentes

Posso acessar meu próprio Mac via SSH a partir de outro dispositivo?

Sim. Ative “Remote Login” em Preferências do Sistema > Compartilhamento e use ssh usuario@seu-ip-ou-hostname.

Como descubro o IP do meu Mac?

Em Preferências do Sistema > Rede, selecione a conexão ativa (Wi‑Fi ou Ethernet) e veja o endereço IPv4. Ou no Terminal: ifconfig.

Posso usar SSH sem senha?

Sim. Use par de chaves (pública/privada). A chave pública vai ao servidor e o cliente usa a privada localmente.

O SSH é seguro?

Sim, quando configurado corretamente e mantido atualizado. Use chaves, desative autenticação por senha e limite acesso por firewall.

Posso transferir arquivos com SSH?

Sim. Use scp para cópias diretas ou sftp/rsync para operações interativas/eficientes.

Solução de problemas práticos

  • Se “ssh-copy-id” não estiver instalado no macOS, copie a chave manualmente ou instale via brew.
  • Se o servidor usa autenticação por chave, mas você está sendo pedido a senha, verifique se o ssh-agent está carregando sua chave: ssh-add -l.

Conclusão

SSH é uma ferramenta essencial para administração remota e desenvolvimento. No macOS, o Terminal fornece tudo o que você precisa para conectar, transferir arquivos e automatizar tarefas. Adote chaves, revise permissões e endureça o servidor para manter suas conexões seguras.

Resumo final: comece abrindo o Terminal, gere chaves, copie a chave pública para o servidor, teste a conexão e aplique as práticas de segurança listadas.

Importante: sempre mantenha backups seguros das chaves privadas e nunca as compartilhe.

Autor
Edição

Materiais semelhantes

Single Wrench: revisão, uso e preços
Armazenamento em Nuvem

Single Wrench: revisão, uso e preços

Construir um kernel Linux manualmente
Kernel

Construir um kernel Linux manualmente

Hotmail no Gmail — enviar e receber
Email

Hotmail no Gmail — enviar e receber

QuickClick: ações pelos botões de volume
Android

QuickClick: ações pelos botões de volume

Configurar Hotmail/Live no Thunderbird
Email

Configurar Hotmail/Live no Thunderbird

Como ver e apagar o histórico do YouTube
Privacidade

Como ver e apagar o histórico do YouTube