SSH | Linux
- SSH | Linux
Conectar
ssh nome_usuario@ip
PuTTY
- Programa que gera certificados e conecta em servidores
Introduction
The SSH protocol creates a secure connection between two remote machines. An SSH config file helps easily configure the default values for these connections and enables efficient streamlining of SSH connections.
This article explains how to use SSH config files to manage SSH connections.

Prerequisites
- Access to the terminal (CTRL+Alt+T)
- Access to a text editor (nano, vim…)
- A remote server to test connections
What are SSH Config Files?
SSH configuration files automate SSH connections.
- User config file →
~/.ssh/config - System-wide config →
/etc/ssh/ssh_config

A config file is a plain text file with SSH connection options.
How are SSH Config Files Used?
Exemplo de host:
Host my-website.com
HostName my-website.com
User my-user
IdentityFile ~/.ssh/id_rsa
Conectar:
ssh my-website.com
How to Create SSH Config Files?
- Abra o terminal
- Navegue para
~/.ssh
cd ~/.ssh
Criar se não existir:
mkdir ~/.ssh
- Criar o arquivo:
nano config
- Salvar e sair
- Ajustar permissões:
chmod 600 ~/.ssh/config
Format of the SSH Config File
Host hostname_1
PARAMETER argument
Host hostname_2
PARAMETER argument
Host *
PARAMETER argument

Padrões:
*→ qualquer quantidade de caracteres?→ exatamente um caractere!→ negação
📑 Tabela Completa de Todas as Propriedades do SSH Config
Todo o conteúdo original foi preservado — apenas organizado em tabela.
| Parâmetro | Descrição |
|---|---|
| AddressFamily | Define família de endereço: inet, inet6, any |
| BatchMode | Evita solicitar senha (útil em scripts) |
| BindAddress | Endereço usado para conexões em hosts com vários IPs |
| ChallengeResponseAuthentication | Ativa autenticação challenge-response |
| CheckHostIP | Verifica IP no known_hosts |
| Cipher | Algoritmo de cifragem para SSH v1 |
| Ciphers | Lista de cifradores para SSH v2 |
| ClearAllForwardings | Remove todos os encaminhamentos configurados |
| Compression | Habilita compressão |
| CompressionLevel | Nível de compressão (SSH v1) |
| ConnectionAttempts | Número de tentativas de conexão |
| ConnectTimeout | Timeout da conexão |
| ControlMaster | Multiplexação de conexões SSH |
| ControlPath | Caminho do socket para multiplexação |
| DynamicForward | Encaminhamento dinâmico (SOCKS) |
| EnableSSHKeysign | Assinatura para host-based authentication |
| EscapeChar | Define caractere de escape |
| ExitOnForwardFailure | Finaliza caso forwarding falhe |
| ForwardAgent | Encaminha agente SSH |
| ForwardX11 | Encaminhamento gráfico |
| ForwardX11Trusted | Encaminhamento X11 confiável |
| GatewayPorts | Aceita conexões externas em portas encaminhadas |
| GlobalKnownHostsFile | Local do known_hosts global |
| GSSAPIAuthentication | Autenticação GSSAPI |
| GSSAPIKeyExchange | Troca de chaves GSSAPI |
| GSSAPIClientIdentity | Identidade GSSAPI |
| GSSAPIDelegateCredentials | Encaminha credenciais GSSAPI |
| GSSAPIRenewalForcesRekey | Renegocia após renovação GSSAPI |
| GSSAPITrustDns | Confia no DNS para GSSAPI |
| HashKnownHosts | Armazena hosts em hash |
| HostbasedAuthentication | Autenticação baseada em host |
| HostKeyAlgorithms | Ordem de algoritmos de host key |
| HostKeyAlias | Alias da chave do host |
| HostName | Hostname real usado para conexão |
| IdentitiesOnly | Usa apenas identidades listadas |
| IdentityFile | Caminho da chave privada |
| KbdInteractiveAuthentication | Autenticação interativa |
| KbdInteractiveDevices | Dispositivos permitidos na autenticação |
| LocalCommand | Comando executado localmente após conexão |
| LocalForward | Encaminhamento de porta local |
| LogLevel | Verbosidade do log |
| MACs | Algoritmos de autenticação de mensagens |
| NoHostAuthenticationForLocalhost | Desativa verificação de localhost |
| NumberOfPasswordPrompts | Quantidade de prompts de senha |
| PasswordAuthentication | Autenticação por senha |
| PermitLocalCommand | Permite LocalCommand |
| Port | Porta SSH |
| PreferredAuthentications | Lista de preferências de autenticação |
| Protocol | Versão do SSH (1 ou 2) |
| ProxyCommand | Comando para uso de proxy |
| PubkeyAuthentication | Autenticação por chave pública |
| RekeyLimit | Limite de dados antes de rekey |
| RemoteForward | Encaminhamento remoto |
| RhostsRSAAuthentication | Autenticação baseada em Rhosts + RSA |
| RSAAuthentication | Autenticação RSA |
| SendEnv | Envia variáveis de ambiente |
| ServerAliveCountMax | Máximo de keepalives |
| ServerAliveInterval | Intervalo de keepalive |
| SmartcardDevice | Define dispositivo de smartcard |
| StrictHostKeyChecking | Comportamento para validação de host key |
| TCPKeepAlive | Keepalive TCP |
| Tunnel | Cria dispositivo de túnel |
| TunnelDevice | Configura dispositivo do túnel |
| UsePrivilegedPort | Usa porta privilegiada |
| User | Usuário SSH |
| UserKnownHostsFile | Arquivo de known_hosts personalizado |
| VerifyHostKeyDNS | Verifica chave via DNS |
| VisualHostKey | Exibe fingerprint em ASCII-art |
| XAuthLocation | Local do xauth |
Executar comandos pelo SSH | EOF
ssh user@remote-server <<EOF
echo "Executando comandos no servidor remoto"
mkdir -p /tmp/test
touch /tmp/test/file.txt
ls -l /tmp/test
EOF
Usando arquivo
ssh user@remote-server "cat > /tmp/myfile.txt <<EOF
Este é o conteúdo do arquivo.
EOF"
📥 Realizar Download via SSH
1. Usando scp
Baixar arquivo:
scp usuario@servidor:/caminho/arquivo ./arquivo
Baixar diretório:
scp -r usuario@servidor:/caminho/pasta ./pasta
Com chave:
scp -i ~/.ssh/minhachave usuario@servidor:/arquivo.txt .
2. Usando rsync
rsync -avz usuario@servidor:/caminho/remoto ./destino
Com chave:
rsync -avz -e "ssh -i ~/.ssh/minhachave" usuario@servidor:/remoto ./local
3. Usando sftp
sftp usuario@servidor
Dentro do SFTP:
get arquivo
get -r pasta
mget *.pdf