Skip to main content

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.

ssh config


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

ssh config files

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?

  1. Abra o terminal
  2. Navegue para ~/.ssh
cd ~/.ssh

Criar se não existir:

mkdir ~/.ssh
  1. Criar o arquivo:
nano config
  1. Salvar e sair
  2. 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

file format

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âmetroDescrição
AddressFamilyDefine família de endereço: inet, inet6, any
BatchModeEvita solicitar senha (útil em scripts)
BindAddressEndereço usado para conexões em hosts com vários IPs
ChallengeResponseAuthenticationAtiva autenticação challenge-response
CheckHostIPVerifica IP no known_hosts
CipherAlgoritmo de cifragem para SSH v1
CiphersLista de cifradores para SSH v2
ClearAllForwardingsRemove todos os encaminhamentos configurados
CompressionHabilita compressão
CompressionLevelNível de compressão (SSH v1)
ConnectionAttemptsNúmero de tentativas de conexão
ConnectTimeoutTimeout da conexão
ControlMasterMultiplexação de conexões SSH
ControlPathCaminho do socket para multiplexação
DynamicForwardEncaminhamento dinâmico (SOCKS)
EnableSSHKeysignAssinatura para host-based authentication
EscapeCharDefine caractere de escape
ExitOnForwardFailureFinaliza caso forwarding falhe
ForwardAgentEncaminha agente SSH
ForwardX11Encaminhamento gráfico
ForwardX11TrustedEncaminhamento X11 confiável
GatewayPortsAceita conexões externas em portas encaminhadas
GlobalKnownHostsFileLocal do known_hosts global
GSSAPIAuthenticationAutenticação GSSAPI
GSSAPIKeyExchangeTroca de chaves GSSAPI
GSSAPIClientIdentityIdentidade GSSAPI
GSSAPIDelegateCredentialsEncaminha credenciais GSSAPI
GSSAPIRenewalForcesRekeyRenegocia após renovação GSSAPI
GSSAPITrustDnsConfia no DNS para GSSAPI
HashKnownHostsArmazena hosts em hash
HostbasedAuthenticationAutenticação baseada em host
HostKeyAlgorithmsOrdem de algoritmos de host key
HostKeyAliasAlias da chave do host
HostNameHostname real usado para conexão
IdentitiesOnlyUsa apenas identidades listadas
IdentityFileCaminho da chave privada
KbdInteractiveAuthenticationAutenticação interativa
KbdInteractiveDevicesDispositivos permitidos na autenticação
LocalCommandComando executado localmente após conexão
LocalForwardEncaminhamento de porta local
LogLevelVerbosidade do log
MACsAlgoritmos de autenticação de mensagens
NoHostAuthenticationForLocalhostDesativa verificação de localhost
NumberOfPasswordPromptsQuantidade de prompts de senha
PasswordAuthenticationAutenticação por senha
PermitLocalCommandPermite LocalCommand
PortPorta SSH
PreferredAuthenticationsLista de preferências de autenticação
ProtocolVersão do SSH (1 ou 2)
ProxyCommandComando para uso de proxy
PubkeyAuthenticationAutenticação por chave pública
RekeyLimitLimite de dados antes de rekey
RemoteForwardEncaminhamento remoto
RhostsRSAAuthenticationAutenticação baseada em Rhosts + RSA
RSAAuthenticationAutenticação RSA
SendEnvEnvia variáveis de ambiente
ServerAliveCountMaxMáximo de keepalives
ServerAliveIntervalIntervalo de keepalive
SmartcardDeviceDefine dispositivo de smartcard
StrictHostKeyCheckingComportamento para validação de host key
TCPKeepAliveKeepalive TCP
TunnelCria dispositivo de túnel
TunnelDeviceConfigura dispositivo do túnel
UsePrivilegedPortUsa porta privilegiada
UserUsuário SSH
UserKnownHostsFileArquivo de known_hosts personalizado
VerifyHostKeyDNSVerifica chave via DNS
VisualHostKeyExibe fingerprint em ASCII-art
XAuthLocationLocal 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