verifica a configuração do sshd

17

Como posso verificar a configuração de sshd ?

Por exemplo, quero ter certeza de que essas configurações estão definidas e aplicadas:

AllowUsers user1 user2 
PasswordAuthentication no
PermitRootLogin no

É a única maneira de verificar manualmente o conteúdo do arquivo sshd_config , ou posso testar sshd para ter certeza?

    
por JuanPablo 18.05.2012 / 20:47

5 respostas

22

Existe um modo de teste estendido, chamado com a opção de linha de comando -T , que faz isso. Por exemplo:

% sudo sshd -T | egrep -i 'allowusers|passwordauth|permitroot'
permitrootlogin yes
passwordauthentication yes

A opção existe no Portable OpenSSH desde 2008, cf. envie e7140f2 . Isto foi lançado com 5.1p1, feito em julho de 2008, cf. notas de lançamento para 5.1 , por isso existe em praticamente todas as instalações de servidor OpenSSH suportadas hoje.

    
por 29.04.2016 / 15:57
4

Embora isso não despeje todas as definições de servidor, você pode tentar se conectar ao servidor com um sinalizador de depuração detalhado: ssh -v user@server . Isso lhe dará muitas informações que refletirão as opções ativadas na configuração do sshd.

Por exemplo, dê uma olhada na saída dessa conexão com a opção -v (assinaturas de chave, domínio e endereços IP propositalmente disfarçados):

OpenSSH_6.0p1, OpenSSL 0.9.8w 23 Apr 2012
debug1: Reading configuration data /home/claudio/.ssh/config
debug1: /home/claudio/.ssh/config line 13: Applying options for serv01
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to somedomain.com [185.113.29.221] port 22.
debug1: Connection established.
debug1: identity file /home/claudio/.ssh/id_dsa type 2
debug1: identity file /home/claudio/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9
debug1: match: OpenSSH_5.9 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 3a:0d:b8:18:ca:67:4c:54:0f:c8:b2:1e:48:53:69:28
debug1: Host '[somedomain.com]:22' is known and matches the ECDSA host key.
debug1: Found key in /home/claudio/.ssh/known_hosts:7
Warning: Permanently added the ECDSA host key for IP address '[185.113.29.221]:22' to the list of known hosts.
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/claudio/.ssh/id_dsa
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: Authentication succeeded (publickey).
Authenticated to somedomain.com ([185.113.29.221]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.

A partir disso, você pode ver que os métodos de autenticação permitidos são: publickey, password, keyboard-interactive. Você também pode ver que o roaming não é permitido por esse servidor e que o usuário claudio pode se conectar usando sua chave pública.

Você pode aumentar o nível de saída de informações especificando mais letras "v", mas, em seguida, pode obter informações de nível muito mais baixo do que provavelmente deseja.

    
por 18.05.2012 / 21:04
3

A configuração do sshd é normalmente encontrada no seguinte arquivo: /etc/ssh/sshd_config .

Para consultar a configuração do tempo de execução, você pode usar o modo de teste estendido sshd -T , que também permite testar a correspondência de configurações do cliente.

    
por 18.05.2012 / 20:50
2

O problema de olhar o arquivo / etc / ssh / sshd_config como sugerido por outras respostas é que ele não necessariamente contém toda a configuração. Este arquivo contém os valores de quaisquer variáveis de configuração que você deseja definir para ignorar os padrões e, conforme fornecido, contém como comentários os padrões incorporados em sshd.

Se um arquivo de configuração personalizado for instalado no lugar da versão enviada, você perderá os padrões que são compilados no sshd e, se for uma compilação personalizada, os padrões poderão não corresponder aos comentários no sshd_config que são visível.

Além disso, é perfeitamente possível executar o sshd com um arquivo de configuração alternativo com a opção -f, portanto, o armazenado em / etc / ssh / sshd_config pode não refletir as configurações atuais.

Isso torna a questão bastante válida e, até onde eu sei, incapaz de ser respondida com alguma certeza.

    
por 03.10.2014 / 12:33
1

não há nenhuma maneira conhecida de consultar a configuração de uma instância sshd em execução, eu acho, se você está se referindo ao servidor openssh. Dependendo do que você deseja fazer, você pode usar o sinalizador -t para testar um arquivo de configuração para ter certeza de que é válido antes de reiniciar o servidor, para que você não seja expulso, esp. se você não tiver acesso out-of-band ao servidor.

    
por 18.05.2012 / 21:01