sshd_config

Configure o servidor OpenSSH: escuta, autenticação, encaminhamento, controle de acesso e registro.

Antes de executar

A configuração do servidor é distinta do cliente ssh_config. Caminhos, opções suportadas e padrões dependem do sistema operacional e da versão do OpenSSH. Mantenha uma sessão administrativa existente aberta e um caminho de recuperação disponível. Antes de aplicar as alterações, valide a configuração real com sshd -t e inspecione as configurações efetivas com sshd -T; esses comandos podem exigir privilégios de administrador. Verifique um segundo login antes de fechar a sessão original. Não copie valores de exemplo cegamente.

Após aplicar as alterações, confirme em uma nova sessão SSH que o login e o funcionamento esperado estão corretos. Mantenha a sessão atual aberta até a verificação ser concluída, para poder restaurar a configuração se necessário.

Exemplos

Exemplo de configuração do servidor. Adapte a autenticação, os caminhos e as regras de acesso ao seu ambiente.

Port 22
PermitRootLogin no
PubkeyAuthentication yes
AllowTcpForwarding yes

Valide a sintaxe e inspecione as configurações efetivas do servidor antes de aplicar as alterações.

sudo sshd -t
sudo sshd -T

Opções e exemplos

PortComum

Porta TCP de escuta; múltiplas diretivas Port são permitidas. Certifique-se de que o firewall e os clientes permitam a porta escolhida.

Exemplo
Port 2222
ListenAddressComum

Endereço local no qual o sshd escuta. Um endereço pode incluir uma porta; certifique-se de que ele exista no servidor.

Exemplo
ListenAddress 192.0.2.10
AddressFamily

Selecione a família de endereços: qualquer, inet para IPv4 ou inet6 para IPv6.

Exemplo
AddressFamily inet
HostKeyComum

Caminho para uma chave de host privada do servidor; esta não é uma chave de autenticação do usuário. Proteja o arquivo privado.

Exemplo
HostKey /etc/ssh/ssh_host_ed25519_key
HostCertificate

Caminho para um certificado de host do servidor que corresponde a uma chave de host configurada.

Exemplo
HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub
PasswordAuthenticationComum

Permitir ou negar autenticação por senha. Verifique outro método de login antes de desativá-lo.

Exemplo
PasswordAuthentication no
PubkeyAuthenticationComum

Permitir ou negar autenticação de chave pública. As permissões do servidor e as chaves autorizadas ainda se aplicam.

Exemplo
PubkeyAuthentication yes
KbdInteractiveAuthenticationComum

Permitir autenticação interativa com teclado. Os prompts e métodos disponíveis dependem do servidor e do back-end de autenticação.

Exemplo
KbdInteractiveAuthentication yes
AuthenticationMethodsComum

Exija uma das listas de métodos separados por espaço; todo método separado por vírgula em uma lista deve ser bem-sucedido. Cada método também deve estar habilitado.

Exemplo
AuthenticationMethods publickey,keyboard-interactive
PermitRootLoginComum

Controle o login root: sim, senha proibida, somente comandos forçados ou não. Teste primeiro um login administrativo alternativo.

Exemplo
PermitRootLogin no
PermitEmptyPasswords

Permitir que contas com senhas vazias sejam autenticadas usando autenticação por senha. Ativar isso não é seguro.

Exemplo
PermitEmptyPasswords no
AuthorizedKeysFileComum

Caminhos para arquivos contendo chaves públicas autorizadas. Os caminhos relativos são resolvidos no diretório inicial do usuário; tokens são suportados.

Exemplo
AuthorizedKeysFile .ssh/authorized_keys
StrictModesComum

Verifique a propriedade e as permissões dos arquivos do usuário e diretórios iniciais antes de aceitar o login.

Exemplo
StrictModes yes
AllowUsersComum

Permitir apenas os padrões de nome de usuário listados; Os padrões USER@HOST podem restringir a origem. O acesso à conta também está sujeito a outras restrições.

Exemplo
AllowUsers alice bob
DenyUsers

Negar padrões de nome de usuário correspondentes. As regras de negação têm precedência sobre as regras de permissão correspondentes.

Exemplo
DenyUsers guest
AllowGroups

Permitir apenas usuários em grupos nomeados correspondentes, sujeito a outras regras de acesso.

Exemplo
AllowGroups sshusers
DenyGroups

Negar usuários em grupos nomeados correspondentes; nomes de grupos, e não IDs numéricos, são usados.

Exemplo
DenyGroups restricted
AllowTcpForwardingComum

Controle o encaminhamento de TCP: sim ou todos, não, local ou remoto. Isso por si só não pode impedir o encaminhamento por usuários com acesso irrestrito ao shell.

Exemplo
AllowTcpForwarding local
DisableForwarding

Desative os recursos de encaminhamento, substituindo outras configurações de encaminhamento. Isso pode interromper túneis e encaminhamento de agente ou X11.

Exemplo
DisableForwarding yes
GatewayPortsComum

Controle endereços de ligação de encaminhamento remoto: não vincula loopback, sim vincula curinga e especificado pelo cliente permite endereços selecionados pelo cliente. A exposição de portas tem implicações de segurança.

Exemplo
GatewayPorts no
PermitOpen

Restrinja destinos para encaminhamento TCP local; use entradas host:port, qualquer ou nenhuma. Os nomes não são resolvidos para correspondência.

Exemplo
PermitOpen db.example.com:5432
PermitListen

Restrinja endereços de escuta e portas para encaminhamento remoto; GatewayPorts também afeta a ligação.

Exemplo
PermitListen localhost:18080
AllowAgentForwarding

Permitir encaminhamento do agente de autenticação SSH. Um processo remoto com acesso ao soquete do agente pode solicitar assinaturas.

Exemplo
AllowAgentForwarding no
AllowStreamLocalForwarding

Controle o encaminhamento de soquete de domínio Unix: sim ou todos, não, local ou remoto.

Exemplo
AllowStreamLocalForwarding no
X11Forwarding

Habilite o encaminhamento de exibição do X11. Ative apenas quando necessário e entenda o risco de acesso remoto ao monitor.

Exemplo
X11Forwarding no
MaxAuthTriesComum

Máximo de tentativas de autenticação por conexão antes de desconectar. O servidor pode registrar falhas mais cedo.

Exemplo
MaxAuthTries 4
MaxSessionsComum

Máximo de sessões de shell, login ou subsistema por conexão SSH. Definir zero impede sessões, mas ainda pode permitir o encaminhamento.

Exemplo
MaxSessions 10
MaxStartupsComum

Limite conexões não autenticadas. O formulário start:rate:full rejeita progressivamente conexões sob carga.

Exemplo
MaxStartups 10:30:100
LoginGraceTimeComum

Tempo permitido para autenticação; uma duração zero significa que não há limite de tempo.

Exemplo
LoginGraceTime 60s
ClientAliveIntervalComum

Intervalo em segundos para análises criptografadas de cliente ativo em nível SSH; zero desativa essas sondagens.

Exemplo
ClientAliveInterval 30
ClientAliveCountMaxComum

Número de sondagens de cliente ativo em nível SSH toleradas antes da desconexão. Use com ClientAliveInterval.

Exemplo
ClientAliveCountMax 3
TCPKeepAlive

Controlar mensagens de manutenção de atividade TCP. Eles são separados das sondagens de cliente ativo SSH criptografadas.

Exemplo
TCPKeepAlive yes
UsePAMComum

Habilite a integração do PAM em builds que a suportem. A política PAM e os métodos de autenticação disponíveis variam de acordo com o sistema.

Exemplo
UsePAM yes
PermitTTY

Permitir a alocação de um pseudoterminal. Desativá-lo afeta as sessões interativas.

Exemplo
PermitTTY yes
ForceCommand

Substitua o comando solicitado por um comando fixo. Valide o acesso e as restrições cuidadosamente antes de ativar.

Exemplo
ForceCommand internal-sftp
SubsystemComum

Defina um subsistema nomeado e seu comando; internal-sftp é o servidor SFTP integrado.

Exemplo
Subsystem sftp internal-sftp
ChrootDirectory

Confine uma sessão a um diretório após a autenticação. A propriedade e as permissões do diretório são rigorosamente verificadas; provisionar os arquivos necessários para a sessão pretendida.

Exemplo
ChrootDirectory /srv/sftp/%u
MatchComum

Inicie um bloco condicional para combinar usuários, grupos, endereços ou outros critérios suportados. Apenas certas diretivas são permitidas dentro dele.

Exemplo
Match User sftpuser
    ForceCommand internal-sftp
IncludeComum

Incluir arquivos de configuração por caminho ou glob. A ordenação é importante porque geralmente se aplica o primeiro valor obtido.

Exemplo
Include /etc/ssh/sshd_config.d/*.conf
LogLevelComum

Defina o detalhamento do log, como QUIET, FATAL, ERROR, INFO, VERBOSE ou DEBUG. Logs detalhados podem expor informações confidenciais.

Exemplo
LogLevel INFO
SyslogFacility

Escolha o recurso syslog usado para mensagens do servidor SSH; a configuração de log do sistema determina onde eles aparecem.

Exemplo
SyslogFacility AUTH
Banner

Envie o conteúdo de um arquivo especificado antes da autenticação. Use none para desabilitar um banner configurado.

Exemplo
Banner /etc/issue.net
AcceptEnv

Permitir variáveis ​​de ambiente nomeadas fornecidas pelo cliente. Algumas variáveis ​​podem ignorar ambientes restritos, portanto permita apenas o que for necessário.

Exemplo
AcceptEnv LANG LC_*
PermitUserEnvironment

Controle as configurações de ambiente fornecidas pelo usuário. Ativá-los pode contornar restrições por meio de variáveis ​​de ambiente.

Exemplo
PermitUserEnvironment no
PrintMotd

Controle se o sshd imprime a mensagem do dia no login interativo. PAM ou outro serviço também pode imprimi-lo.

Exemplo
PrintMotd no
Compression

Controlar a compressão. Os valores e o tempo suportados variam de acordo com a versão do OpenSSH.

Exemplo
Compression no
RekeyLimit

Defina o limite de dados e, opcionalmente, o intervalo de tempo para rechaveamento. Use valores apropriados para a versão do servidor.

Exemplo
RekeyLimit 1G 1h
Ciphers

Selecione algoritmos de criptografia permitidos. A substituição da lista padrão pode reduzir a compatibilidade; use a cifra ssh -Q para inspecionar algoritmos suportados pelo cliente.

Exemplo
Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com
KexAlgorithms

Selecione algoritmos de troca de chaves. Restringir esta lista pode quebrar clientes; verifique o suporte em ambos os lados.

Exemplo
KexAlgorithms curve25519-sha256
PubkeyAcceptedAlgorithms

Selecione algoritmos de assinatura de chave pública permitidos para autenticação de usuário. Verifique a compatibilidade antes de alterar a lista padrão.

Exemplo
PubkeyAcceptedAlgorithms ssh-ed25519
HostKeyAlgorithms

Selecione algoritmos de assinatura de chave de host oferecidos pelo servidor. A chave de host configurada deve suportar o algoritmo escolhido.

Exemplo
HostKeyAlgorithms ssh-ed25519
TrustedUserCAKeys

Arquivo contendo chaves públicas de autoridade de certificação de usuário confiável para autenticação de certificado.

Exemplo
TrustedUserCAKeys /etc/ssh/user_ca.pub
RevokedKeys

Arquivo contendo chaves públicas revogadas ou uma lista de chaves revogadas. Um arquivo configurado ausente ou ilegível pode impedir a autenticação de chave pública.

Exemplo
RevokedKeys /etc/ssh/revoked_keys
AuthorizedPrincipalsFile

Principais de listagem de arquivos permitidos para um certificado de usuário assinado por uma CA confiável; a expansão de token é suportada.

Exemplo
AuthorizedPrincipalsFile /etc/ssh/auth_principals/%u
VersionAddendum

Anexe texto ao banner do protocolo SSH; nenhum desativa o texto adicionado.

Exemplo
VersionAddendum none
AuthorizedKeysCommand

Execute um programa confiável de propriedade do root para obter chaves públicas. Configure sua conta de execução e siga os requisitos de propriedade do manual.

Exemplo
AuthorizedKeysCommand /usr/local/libexec/ssh-keys %u
AuthorizedKeysCommandUser

Conta usada para executar AuthorizedKeysCommand; uma conta dedicada é recomendada.

Exemplo
AuthorizedKeysCommandUser sshkeys
AuthorizedPrincipalsCommand

Execute um programa confiável para obter entidades de certificado permitidas. Configure sua conta de execução separadamente.

Exemplo
AuthorizedPrincipalsCommand /usr/local/libexec/ssh-principals %u
AuthorizedPrincipalsCommandUser

Conta usada para executar AuthorizedPrincipalsCommand; use uma conta dedicada.

Exemplo
AuthorizedPrincipalsCommandUser sshprincipals
CASignatureAlgorithms

Restringir algoritmos de assinatura de autoridade de certificação aceitos para certificados SSH. Verifique a compatibilidade da CA e do cliente antes das alterações.

Exemplo
CASignatureAlgorithms ssh-ed25519
ChannelTimeout

Expirar canais inativos por tipo de canal e duração; a disponibilidade e os tipos de canais suportados dependem da versão. A expiração não precisa encerrar a conexão SSH.

Exemplo
ChannelTimeout session=1h
ExposeAuthInfo

Expor informações de autenticação através de um arquivo temporário referenciado por SSH_USER_AUTH; considere o acesso aos detalhes de autenticação.

Exemplo
ExposeAuthInfo no
FingerprintHash

Selecione o hash usado para impressões digitais de chave, como sha256 ou md5. Prefira SHA-256.

Exemplo
FingerprintHash sha256
GSSAPIAuthentication

Controlar a autenticação do usuário GSSAPI quando compatível com a construção do servidor.

Exemplo
GSSAPIAuthentication no
GSSAPICleanupCredentials

Controlar se as credenciais GSSAPI delegadas serão destruídas no logout; o suporte de construção varia.

Exemplo
GSSAPICleanupCredentials yes
GSSAPIDelegateCredentials

Controle o armazenamento de credenciais GSSAPI delegadas para sessões de usuário, quando compatível.

Exemplo
GSSAPIDelegateCredentials no
GSSAPIStrictAcceptorCheck

Controle se o servidor requer a identidade correta do host GSSAPI. Desabilitar a verificação tem implicações de segurança.

Exemplo
GSSAPIStrictAcceptorCheck yes
HostbasedAcceptedAlgorithms

Selecione algoritmos aceitos para autenticação baseada em host. A disponibilidade varia de acordo com a versão do OpenSSH.

Exemplo
HostbasedAcceptedAlgorithms ssh-ed25519
HostbasedAuthentication

Controlar a autenticação baseada em host; requer confiança adicional e configuração de host.

Exemplo
HostbasedAuthentication no
HostbasedUsesNameFromPacketOnly

Controle se a autenticação baseada em host usa o nome fornecido pelo cliente em vez do DNS. Revise as implicações de confiança.

Exemplo
HostbasedUsesNameFromPacketOnly no
HostKeyAgent

Especifique o soquete do agente usado para acessar as chaves privadas do host. O agente e seu soquete devem estar disponíveis para sshd.

Exemplo
HostKeyAgent /run/ssh-hostkey-agent.sock
IgnoreRhosts

Controlar o uso de arquivos rhosts ou shosts por usuário para autenticação baseada em host; os valores aceitos variam de acordo com a versão.

Exemplo
IgnoreRhosts yes
IgnoreUserKnownHosts

Controle se os arquivos conhecidos_hosts específicos do usuário serão ignorados durante a autenticação baseada em host.

Exemplo
IgnoreUserKnownHosts yes
KerberosAuthentication

Controle a autenticação de senha Kerberos quando criada e configurada com suporte Kerberos.

Exemplo
KerberosAuthentication no
KerberosGetAFSToken

Controle a obtenção de um token AFS para um usuário autenticado por Kerberos onde a construção o suporta.

Exemplo
KerberosGetAFSToken no
KerberosOrLocalPasswd

Controle se a falha na validação de senha do Kerberos recorre à autenticação de senha local.

Exemplo
KerberosOrLocalPasswd no
KerberosTicketCleanup

Controlar a remoção do cache de tickets Kerberos de um usuário no logout, quando houver suporte.

Exemplo
KerberosTicketCleanup yes
LogVerbose

Substitua o detalhamento do registro para locais de origem correspondentes. Destina-se à solução de problemas e pode expor informações confidenciais.

Exemplo
LogVerbose kex.c:*:1000
ModuliFile

Caminho para o arquivo de módulos usado para troca de grupo Diffie-Hellman; mantenha-o de acordo com as orientações da plataforma.

Exemplo
ModuliFile /etc/ssh/moduli
PAMServiceName

Selecione o nome do serviço PAM nas compilações que suportam esta diretiva; A política PAM para o serviço selecionado deve existir.

Exemplo
PAMServiceName sshd
PermitTunnel

Controle o encaminhamento do dispositivo tun: sim, ponto a ponto, Ethernet ou não. Privilégios e configurações adicionais do sistema podem ser necessários.

Exemplo
PermitTunnel no
PermitUserRC

Controlar a execução do arquivo SSH rc do usuário. Desativá-lo pode afetar a configuração da sessão do usuário.

Exemplo
PermitUserRC no
PerSourceMaxStartups

Limite conexões simultâneas não autenticadas por endereço de origem ou grupo de origem; o suporte à versão varia.

Exemplo
PerSourceMaxStartups 10
PerSourceNetBlockSize

Defina comprimentos de prefixo IPv4 e IPv6 usados ​​para agrupar fontes para limites de conexão por origem.

Exemplo
PerSourceNetBlockSize 32:128
PerSourcePenalties

Configure penalidades para fontes problemáticas. Os tipos, valores e padrões de penalidade suportados variam de acordo com a versão do OpenSSH.

Exemplo
PerSourcePenalties no
PerSourcePenaltyExemptList

Listar endereços de origem ou intervalos CIDR isentos de penalidades por fonte; garantir que as isenções tenham um âmbito restrito.

Exemplo
PerSourcePenaltyExemptList 192.0.2.0/24
PidFile

Caminho para o arquivo de ID do processo do servidor. Certifique-se de que o gerenciador de serviços e as permissões estejam de acordo com esse caminho.

Exemplo
PidFile /run/sshd.pid
PrintLastLog

Controle a impressão do horário de login anterior para logins interativos. A disponibilidade pode depender do suporte da plataforma.

Exemplo
PrintLastLog yes
PubkeyAuthOptions

Defina opções de autenticação de chave pública, incluindo toque de chave de segurança ou requisitos de verificação, quando suportado.

Exemplo
PubkeyAuthOptions touch-required
RefuseConnection

Recuse uma conexão, normalmente dentro de um bloco Match. A disponibilidade varia de acordo com a versão.

Exemplo
Match User blocked
    RefuseConnection yes
RequiredRSASize

Defina o tamanho mínimo da chave RSA aceito pelo sshd. Valores mais baixos podem enfraquecer a segurança e algumas versões impõem um mínimo.

Exemplo
RequiredRSASize 3072
RDomain

Selecione um domínio de roteamento para a sessão em plataformas que suportam domínios de roteamento. Isso é específico da plataforma.

Exemplo
RDomain 1
SecurityKeyProvider

Caminho para uma biblioteca de middleware de chave de segurança FIDO; deixá-lo sem definição usa o suporte integrado quando disponível.

Exemplo
SecurityKeyProvider /usr/local/lib/libsk-libfido2.so
SshdAuthPath

Caminho para o auxiliar de autenticação sshd em versões e plataformas que o suportam. Normalmente gerenciado pelo pacote.

Exemplo
SshdAuthPath /usr/libexec/sshd-auth
SshdSessionPath

Caminho para o auxiliar de sessão sshd em versões e plataformas que o suportam. Normalmente gerenciado pelo pacote.

Exemplo
SshdSessionPath /usr/libexec/sshd-session
StreamLocalBindMask

Defina a máscara de criação do modo de arquivo octal para um soquete de encaminhamento de domínio Unix.

Exemplo
StreamLocalBindMask 0177
StreamLocalBindUnlink

Controle se um soquete de domínio Unix existente será removido antes de criar um ouvinte de encaminhamento.

Exemplo
StreamLocalBindUnlink no
UnusedConnectionTimeout

Fechar conexões sem canais abertos após o tempo especificado. O comportamento e a disponibilidade afetados variam de acordo com a versão.

Exemplo
UnusedConnectionTimeout 5m
X11DisplayOffset

Defina o primeiro número de exibição disponível para encaminhamento X11.

Exemplo
X11DisplayOffset 10
X11UseLocalhost

Vincule o servidor de encaminhamento X11 ao loopback quando habilitado; desativá-lo pode expor a tela de forma mais ampla.

Exemplo
X11UseLocalhost yes
XAuthLocation

Caminho para o programa xauth usado para encaminhamento X11, quando aplicável.

Exemplo
XAuthLocation /usr/bin/xauth
IPQoS

Defina marcações de qualidade de serviço IP para sessões interativas e não interativas. Os dispositivos de rede podem interpretar ou ignorar estas marcações.

Exemplo
IPQoS lowdelay throughput
MACs

Selecione algoritmos de código de autenticação de mensagem. A alteração dos padrões pode afetar a segurança e a compatibilidade do cliente.

Exemplo
MACs hmac-sha2-256-etm@openssh.com
SetEnv

Defina variáveis ​​de ambiente para sessões filhas. Esses valores substituem variáveis ​​aceitas de clientes ou arquivos de ambiente de usuário.

Exemplo
SetEnv LANG=en_US.UTF-8
UseDNS

Controle a pesquisa e verificação reversa de DNS para clientes conectados. Ativá-lo pode causar atraso se o DNS estiver lento.

Exemplo
UseDNS no

Configuração inicial recomendada

Para servidores com login por chave pública verificado e sem necessidade de autenticação interativa por teclado. O encaminhamento TCP continua permitido a usuários autenticados; as escutas remotas ficam limitadas ao endereço de loopback.

PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PermitEmptyPasswords no
AllowTcpForwarding yes
GatewayPorts no

Esta configuração desativa o login por senha e a autenticação interativa por teclado, que pode incluir PAM ou códigos de uso único. Confirme primeiro outra conta de administrador e sua chave. AllowTcpForwarding yes permite encaminhamento a usuários autenticados; restrinja o acesso conforme necessário.

Mantenha a sessão atual e um meio de recuperação disponíveis. Integre os valores à configuração existente: a ordem de Include, valores anteriores e blocos Match podem afetar o resultado. Verifique com sshd -t e sshd -T e use sshd -T -C para condições Match. Aplique pelo procedimento do serviço e confirme um segundo login antes de encerrar a sessão original.

Referências oficiais

Revisado em 27 de outubro de 2026