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 yesValide a sintaxe e inspecione as configurações efetivas do servidor antes de aplicar as alterações.
sudo sshd -t
sudo sshd -TOpções e exemplos
PortComumPorta TCP de escuta; múltiplas diretivas Port são permitidas. Certifique-se de que o firewall e os clientes permitam a porta escolhida.
Port 2222ListenAddressComumEndereço local no qual o sshd escuta. Um endereço pode incluir uma porta; certifique-se de que ele exista no servidor.
ListenAddress 192.0.2.10AddressFamilySelecione a família de endereços: qualquer, inet para IPv4 ou inet6 para IPv6.
AddressFamily inetHostKeyComumCaminho para uma chave de host privada do servidor; esta não é uma chave de autenticação do usuário. Proteja o arquivo privado.
HostKey /etc/ssh/ssh_host_ed25519_keyHostCertificateCaminho para um certificado de host do servidor que corresponde a uma chave de host configurada.
HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pubPasswordAuthenticationComumPermitir ou negar autenticação por senha. Verifique outro método de login antes de desativá-lo.
PasswordAuthentication noPubkeyAuthenticationComumPermitir ou negar autenticação de chave pública. As permissões do servidor e as chaves autorizadas ainda se aplicam.
PubkeyAuthentication yesKbdInteractiveAuthenticationComumPermitir autenticação interativa com teclado. Os prompts e métodos disponíveis dependem do servidor e do back-end de autenticação.
KbdInteractiveAuthentication yesAuthenticationMethodsComumExija 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.
AuthenticationMethods publickey,keyboard-interactivePermitRootLoginComumControle o login root: sim, senha proibida, somente comandos forçados ou não. Teste primeiro um login administrativo alternativo.
PermitRootLogin noPermitEmptyPasswordsPermitir que contas com senhas vazias sejam autenticadas usando autenticação por senha. Ativar isso não é seguro.
PermitEmptyPasswords noAuthorizedKeysFileComumCaminhos para arquivos contendo chaves públicas autorizadas. Os caminhos relativos são resolvidos no diretório inicial do usuário; tokens são suportados.
AuthorizedKeysFile .ssh/authorized_keysStrictModesComumVerifique a propriedade e as permissões dos arquivos do usuário e diretórios iniciais antes de aceitar o login.
StrictModes yesAllowUsersComumPermitir 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.
AllowUsers alice bobDenyUsersNegar padrões de nome de usuário correspondentes. As regras de negação têm precedência sobre as regras de permissão correspondentes.
DenyUsers guestAllowGroupsPermitir apenas usuários em grupos nomeados correspondentes, sujeito a outras regras de acesso.
AllowGroups sshusersDenyGroupsNegar usuários em grupos nomeados correspondentes; nomes de grupos, e não IDs numéricos, são usados.
DenyGroups restrictedAllowTcpForwardingComumControle 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.
AllowTcpForwarding localDisableForwardingDesative os recursos de encaminhamento, substituindo outras configurações de encaminhamento. Isso pode interromper túneis e encaminhamento de agente ou X11.
DisableForwarding yesGatewayPortsComumControle 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.
GatewayPorts noPermitOpenRestrinja destinos para encaminhamento TCP local; use entradas host:port, qualquer ou nenhuma. Os nomes não são resolvidos para correspondência.
PermitOpen db.example.com:5432PermitListenRestrinja endereços de escuta e portas para encaminhamento remoto; GatewayPorts também afeta a ligação.
PermitListen localhost:18080AllowAgentForwardingPermitir encaminhamento do agente de autenticação SSH. Um processo remoto com acesso ao soquete do agente pode solicitar assinaturas.
AllowAgentForwarding noAllowStreamLocalForwardingControle o encaminhamento de soquete de domínio Unix: sim ou todos, não, local ou remoto.
AllowStreamLocalForwarding noX11ForwardingHabilite o encaminhamento de exibição do X11. Ative apenas quando necessário e entenda o risco de acesso remoto ao monitor.
X11Forwarding noMaxAuthTriesComumMáximo de tentativas de autenticação por conexão antes de desconectar. O servidor pode registrar falhas mais cedo.
MaxAuthTries 4MaxSessionsComumMáximo de sessões de shell, login ou subsistema por conexão SSH. Definir zero impede sessões, mas ainda pode permitir o encaminhamento.
MaxSessions 10MaxStartupsComumLimite conexões não autenticadas. O formulário start:rate:full rejeita progressivamente conexões sob carga.
MaxStartups 10:30:100LoginGraceTimeComumTempo permitido para autenticação; uma duração zero significa que não há limite de tempo.
LoginGraceTime 60sClientAliveIntervalComumIntervalo em segundos para análises criptografadas de cliente ativo em nível SSH; zero desativa essas sondagens.
ClientAliveInterval 30ClientAliveCountMaxComumNúmero de sondagens de cliente ativo em nível SSH toleradas antes da desconexão. Use com ClientAliveInterval.
ClientAliveCountMax 3TCPKeepAliveControlar mensagens de manutenção de atividade TCP. Eles são separados das sondagens de cliente ativo SSH criptografadas.
TCPKeepAlive yesUsePAMComumHabilite 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.
UsePAM yesPermitTTYPermitir a alocação de um pseudoterminal. Desativá-lo afeta as sessões interativas.
PermitTTY yesForceCommandSubstitua o comando solicitado por um comando fixo. Valide o acesso e as restrições cuidadosamente antes de ativar.
ForceCommand internal-sftpSubsystemComumDefina um subsistema nomeado e seu comando; internal-sftp é o servidor SFTP integrado.
Subsystem sftp internal-sftpChrootDirectoryConfine 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.
ChrootDirectory /srv/sftp/%uMatchComumInicie um bloco condicional para combinar usuários, grupos, endereços ou outros critérios suportados. Apenas certas diretivas são permitidas dentro dele.
Match User sftpuser
ForceCommand internal-sftpIncludeComumIncluir arquivos de configuração por caminho ou glob. A ordenação é importante porque geralmente se aplica o primeiro valor obtido.
Include /etc/ssh/sshd_config.d/*.confLogLevelComumDefina o detalhamento do log, como QUIET, FATAL, ERROR, INFO, VERBOSE ou DEBUG. Logs detalhados podem expor informações confidenciais.
LogLevel INFOSyslogFacilityEscolha o recurso syslog usado para mensagens do servidor SSH; a configuração de log do sistema determina onde eles aparecem.
SyslogFacility AUTHBannerEnvie o conteúdo de um arquivo especificado antes da autenticação. Use none para desabilitar um banner configurado.
Banner /etc/issue.netAcceptEnvPermitir variáveis de ambiente nomeadas fornecidas pelo cliente. Algumas variáveis podem ignorar ambientes restritos, portanto permita apenas o que for necessário.
AcceptEnv LANG LC_*PermitUserEnvironmentControle as configurações de ambiente fornecidas pelo usuário. Ativá-los pode contornar restrições por meio de variáveis de ambiente.
PermitUserEnvironment noPrintMotdControle se o sshd imprime a mensagem do dia no login interativo. PAM ou outro serviço também pode imprimi-lo.
PrintMotd noCompressionControlar a compressão. Os valores e o tempo suportados variam de acordo com a versão do OpenSSH.
Compression noRekeyLimitDefina o limite de dados e, opcionalmente, o intervalo de tempo para rechaveamento. Use valores apropriados para a versão do servidor.
RekeyLimit 1G 1hCiphersSelecione 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.
Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.comKexAlgorithmsSelecione algoritmos de troca de chaves. Restringir esta lista pode quebrar clientes; verifique o suporte em ambos os lados.
KexAlgorithms curve25519-sha256PubkeyAcceptedAlgorithmsSelecione algoritmos de assinatura de chave pública permitidos para autenticação de usuário. Verifique a compatibilidade antes de alterar a lista padrão.
PubkeyAcceptedAlgorithms ssh-ed25519HostKeyAlgorithmsSelecione algoritmos de assinatura de chave de host oferecidos pelo servidor. A chave de host configurada deve suportar o algoritmo escolhido.
HostKeyAlgorithms ssh-ed25519TrustedUserCAKeysArquivo contendo chaves públicas de autoridade de certificação de usuário confiável para autenticação de certificado.
TrustedUserCAKeys /etc/ssh/user_ca.pubRevokedKeysArquivo 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.
RevokedKeys /etc/ssh/revoked_keysAuthorizedPrincipalsFilePrincipais de listagem de arquivos permitidos para um certificado de usuário assinado por uma CA confiável; a expansão de token é suportada.
AuthorizedPrincipalsFile /etc/ssh/auth_principals/%uVersionAddendumAnexe texto ao banner do protocolo SSH; nenhum desativa o texto adicionado.
VersionAddendum noneAuthorizedKeysCommandExecute 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.
AuthorizedKeysCommand /usr/local/libexec/ssh-keys %uAuthorizedKeysCommandUserConta usada para executar AuthorizedKeysCommand; uma conta dedicada é recomendada.
AuthorizedKeysCommandUser sshkeysAuthorizedPrincipalsCommandExecute um programa confiável para obter entidades de certificado permitidas. Configure sua conta de execução separadamente.
AuthorizedPrincipalsCommand /usr/local/libexec/ssh-principals %uAuthorizedPrincipalsCommandUserConta usada para executar AuthorizedPrincipalsCommand; use uma conta dedicada.
AuthorizedPrincipalsCommandUser sshprincipalsCASignatureAlgorithmsRestringir algoritmos de assinatura de autoridade de certificação aceitos para certificados SSH. Verifique a compatibilidade da CA e do cliente antes das alterações.
CASignatureAlgorithms ssh-ed25519ChannelTimeoutExpirar 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.
ChannelTimeout session=1hExposeAuthInfoExpor 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.
ExposeAuthInfo noFingerprintHashSelecione o hash usado para impressões digitais de chave, como sha256 ou md5. Prefira SHA-256.
FingerprintHash sha256GSSAPIAuthenticationControlar a autenticação do usuário GSSAPI quando compatível com a construção do servidor.
GSSAPIAuthentication noGSSAPICleanupCredentialsControlar se as credenciais GSSAPI delegadas serão destruídas no logout; o suporte de construção varia.
GSSAPICleanupCredentials yesGSSAPIDelegateCredentialsControle o armazenamento de credenciais GSSAPI delegadas para sessões de usuário, quando compatível.
GSSAPIDelegateCredentials noGSSAPIStrictAcceptorCheckControle se o servidor requer a identidade correta do host GSSAPI. Desabilitar a verificação tem implicações de segurança.
GSSAPIStrictAcceptorCheck yesHostbasedAcceptedAlgorithmsSelecione algoritmos aceitos para autenticação baseada em host. A disponibilidade varia de acordo com a versão do OpenSSH.
HostbasedAcceptedAlgorithms ssh-ed25519HostbasedAuthenticationControlar a autenticação baseada em host; requer confiança adicional e configuração de host.
HostbasedAuthentication noHostbasedUsesNameFromPacketOnlyControle se a autenticação baseada em host usa o nome fornecido pelo cliente em vez do DNS. Revise as implicações de confiança.
HostbasedUsesNameFromPacketOnly noHostKeyAgentEspecifique o soquete do agente usado para acessar as chaves privadas do host. O agente e seu soquete devem estar disponíveis para sshd.
HostKeyAgent /run/ssh-hostkey-agent.sockIgnoreRhostsControlar 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.
IgnoreRhosts yesIgnoreUserKnownHostsControle se os arquivos conhecidos_hosts específicos do usuário serão ignorados durante a autenticação baseada em host.
IgnoreUserKnownHosts yesKerberosAuthenticationControle a autenticação de senha Kerberos quando criada e configurada com suporte Kerberos.
KerberosAuthentication noKerberosGetAFSTokenControle a obtenção de um token AFS para um usuário autenticado por Kerberos onde a construção o suporta.
KerberosGetAFSToken noKerberosOrLocalPasswdControle se a falha na validação de senha do Kerberos recorre à autenticação de senha local.
KerberosOrLocalPasswd noKerberosTicketCleanupControlar a remoção do cache de tickets Kerberos de um usuário no logout, quando houver suporte.
KerberosTicketCleanup yesLogVerboseSubstitua o detalhamento do registro para locais de origem correspondentes. Destina-se à solução de problemas e pode expor informações confidenciais.
LogVerbose kex.c:*:1000ModuliFileCaminho para o arquivo de módulos usado para troca de grupo Diffie-Hellman; mantenha-o de acordo com as orientações da plataforma.
ModuliFile /etc/ssh/moduliPAMServiceNameSelecione o nome do serviço PAM nas compilações que suportam esta diretiva; A política PAM para o serviço selecionado deve existir.
PAMServiceName sshdPermitTunnelControle 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.
PermitTunnel noPermitUserRCControlar a execução do arquivo SSH rc do usuário. Desativá-lo pode afetar a configuração da sessão do usuário.
PermitUserRC noPerSourceMaxStartupsLimite conexões simultâneas não autenticadas por endereço de origem ou grupo de origem; o suporte à versão varia.
PerSourceMaxStartups 10PerSourceNetBlockSizeDefina comprimentos de prefixo IPv4 e IPv6 usados para agrupar fontes para limites de conexão por origem.
PerSourceNetBlockSize 32:128PerSourcePenaltiesConfigure penalidades para fontes problemáticas. Os tipos, valores e padrões de penalidade suportados variam de acordo com a versão do OpenSSH.
PerSourcePenalties noPerSourcePenaltyExemptListListar endereços de origem ou intervalos CIDR isentos de penalidades por fonte; garantir que as isenções tenham um âmbito restrito.
PerSourcePenaltyExemptList 192.0.2.0/24PidFileCaminho 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.
PidFile /run/sshd.pidPrintLastLogControle a impressão do horário de login anterior para logins interativos. A disponibilidade pode depender do suporte da plataforma.
PrintLastLog yesPubkeyAuthOptionsDefina opções de autenticação de chave pública, incluindo toque de chave de segurança ou requisitos de verificação, quando suportado.
PubkeyAuthOptions touch-requiredRefuseConnectionRecuse uma conexão, normalmente dentro de um bloco Match. A disponibilidade varia de acordo com a versão.
Match User blocked
RefuseConnection yesRequiredRSASizeDefina 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.
RequiredRSASize 3072RDomainSelecione um domínio de roteamento para a sessão em plataformas que suportam domínios de roteamento. Isso é específico da plataforma.
RDomain 1SecurityKeyProviderCaminho para uma biblioteca de middleware de chave de segurança FIDO; deixá-lo sem definição usa o suporte integrado quando disponível.
SecurityKeyProvider /usr/local/lib/libsk-libfido2.soSshdAuthPathCaminho para o auxiliar de autenticação sshd em versões e plataformas que o suportam. Normalmente gerenciado pelo pacote.
SshdAuthPath /usr/libexec/sshd-authSshdSessionPathCaminho para o auxiliar de sessão sshd em versões e plataformas que o suportam. Normalmente gerenciado pelo pacote.
SshdSessionPath /usr/libexec/sshd-sessionStreamLocalBindMaskDefina a máscara de criação do modo de arquivo octal para um soquete de encaminhamento de domínio Unix.
StreamLocalBindMask 0177StreamLocalBindUnlinkControle se um soquete de domínio Unix existente será removido antes de criar um ouvinte de encaminhamento.
StreamLocalBindUnlink noUnusedConnectionTimeoutFechar conexões sem canais abertos após o tempo especificado. O comportamento e a disponibilidade afetados variam de acordo com a versão.
UnusedConnectionTimeout 5mX11DisplayOffsetDefina o primeiro número de exibição disponível para encaminhamento X11.
X11DisplayOffset 10X11UseLocalhostVincule o servidor de encaminhamento X11 ao loopback quando habilitado; desativá-lo pode expor a tela de forma mais ampla.
X11UseLocalhost yesXAuthLocationCaminho para o programa xauth usado para encaminhamento X11, quando aplicável.
XAuthLocation /usr/bin/xauthIPQoSDefina 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.
IPQoS lowdelay throughputMACsSelecione 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.
MACs hmac-sha2-256-etm@openssh.comSetEnvDefina variáveis de ambiente para sessões filhas. Esses valores substituem variáveis aceitas de clientes ou arquivos de ambiente de usuário.
SetEnv LANG=en_US.UTF-8UseDNSControle a pesquisa e verificação reversa de DNS para clientes conectados. Ativá-lo pode causar atraso se o DNS estiver lento.
UseDNS noConfiguraçã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 noEsta 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