20 comandos SSH comuns que você deve usar hoje
O SSH (Secure Shell) é um protocolo amplamente usado para acessar servidores remotos com segurança. Ele permite que você gerencie e interaja com sistemas remotos por meio de uma conexão criptografada. O domínio dos comandos básicos do SSH pode aumentar significativamente sua produtividade e facilitar o gerenciamento de servidores remotos. Abaixo estão 20 comandos SSH comuns que todo administrador de sistemas, desenvolvedor ou qualquer pessoa que trabalhe com servidores deve conhecer.
1. Conexão SSH básica
Esse comando é usado para se conectar a um servidor remoto via SSH.
- Substitua username pelo seu nome de usuário e remote_host pelo endereço IP ou nome de domínio do servidor.
Exemplo:
2. Especificar uma porta
Por padrão, o SSH usa a porta 22. Se o seu servidor usar uma porta diferente, use o sinalizador -p para especificar a porta.
Exemplo:
3. Copiar arquivos do local para o remoto usando scp
Use o scp (cópia segura) para transferir arquivos de sua máquina local para um servidor remoto.
Exemplo:
4. Copiar arquivos de remoto para local usando scp
Para fazer download de arquivos de um servidor remoto para seu computador local:
Exemplo:
5. Copiar diretórios recursivamente usando scp
Para copiar diretórios inteiros (inclusive subdiretórios), use o sinalizador -r com o scp.
Exemplo:
6. Executar comandos em um servidor remoto
Você pode executar um comando em um servidor remoto sem abrir uma sessão SSH interativa.
Exemplo:
7. Usar autenticação de chave SSH
Para evitar a inserção de senhas todas as vezes, você pode usar a autenticação de chave SSH.
- Gere um par de chaves SSH:ssh-keygen -t rsa
- Copie a chave pública para o servidor remoto:ssh-copy-id username@remote_host
Depois de copiar a chave, você pode fazer login sem uma senha.
8. Verificar os registros de conexão SSH
Para visualizar as tentativas de login e os registros de conexão SSH no servidor:
Esse comando é útil para monitorar tentativas de login não autorizadas.
9. Tunelamento SSH (encaminhamento de porta)
O tunelamento SSH permite que você encaminhe o tráfego de uma porta local para um servidor remoto com segurança.
Encaminhamento de porta local:
Exemplo: Encaminhar a porta local 8080 para a porta 3306 em um servidor remoto.
Encaminhamento de porta remota:
10. SSH no servidor remoto com um arquivo de identidade diferente
Se você tiver várias chaves SSH, poderá especificar uma chave específica com o sinalizador -i.
Exemplo:
11. Copiar arquivos usando o rsync por SSH
o rsync é uma ferramenta mais avançada do que o scp para copiar arquivos e diretórios.
Exemplo:
O sinalizador -a preserva as permissões de arquivo, -v é para saída detalhada e -z ativa a compactação.
12. Verificar o status da conexão SSH
Para verificar se a conexão SSH com um servidor remoto ainda está ativa:
Esse comando verifica o status da conexão sem interrompê-la.
13. Listar conexões SSH ativas
Para listar as conexões SSH ativas em um servidor, você pode usar:
Ou:
Esses comandos mostram quais usuários estão conectados ao servidor no momento.
14. Encerrar uma sessão SSH
Para sair de uma sessão SSH, basta digitar:
Ou pressione Ctrl D.
15. Configurar um proxy SOCKS com SSH
O SSH pode atuar como um proxy SOCKS, permitindo que você navegue na Internet com segurança por meio do túnel SSH.
Exemplo:
Em seguida, defina as configurações de proxy do seu navegador como localhost:8080 para usar o proxy SOCKS.
16. Encaminhamento de agente SSH
Se você quiser usar suas chaves SSH locais em um servidor remoto:
- Inicie o agente SSH em seu computador local:eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa - Conecte-se com o encaminhamento do agente:ssh -A nome_de_usuário@hospedeiro_remoto
Isso permite que você faça SSH do servidor remoto para outro servidor usando sua chave local.
17. Arquivo de configuração SSH
Para simplificar as conexões SSH, você pode criar um arquivo de configuração:
- Edite ou crie ~/.ssh/config:nano ~/.ssh/config
- Adicione uma entrada:Host myserver
HostName example.com
Usuário user
Porta 2222
IdentityFile ~/.ssh/id_rsa - Conectar com:ssh myserver
18. Verificar a versão do SSH
Para ver qual versão do SSH está instalada em seu sistema:
Exemplo de saída:
19. Definir o intervalo KeepAlive para evitar o tempo limite
Para manter a conexão SSH ativa e evitar que o tempo limite seja atingido, adicione o seguinte em ~/.ssh/config:
ServerAliveInterval 60
Isso envia um sinal de manutenção a cada 60 segundos.
20. Verificar o espaço em disco disponível no servidor remoto
Você pode usar o df por SSH para verificar o espaço em disco em um servidor remoto:
Exemplo:
Esse comando mostra o espaço disponível em disco em um formato legível por humanos (-h).
Resumo
Esses 20 comandos SSH abrangem uma ampla gama de funções, desde conexões básicas e transferências de arquivos até tarefas avançadas, como criação de túneis e uso de chaves SSH. Ao dominar esses comandos, você pode gerenciar servidores remotos com mais eficiência e segurança. Seja na implantação de aplicativos, na transferência de arquivos ou na solução de problemas do servidor, esses comandos SSH são ferramentas essenciais no kit de ferramentas de um administrador de sistemas.