O que significa 'sem senha' no arquivo sshd_config?

105

Acabei de instalar o Ubuntu 14.04 no meu servidor e estava configurando todos os meus arquivos de configuração quando me deparei com isso no meu arquivo sshd_config :

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

Isso me deixou muito preocupado. Eu pensei que era possível que alguém pudesse entrar no meu servidor como root sem uma senha.

Eu tentei conectar ao meu servidor como root via:

johns-mbp:~ john$ ssh root@192.168.1.48
The authenticity of host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
root@192.168.1.48's password:  

Eu digitei uma senha em branco e ela não me deixou entrar, o que foi um alívio. Então, minha pergunta é: o que significa sem senha e por que isso é um padrão no Ubuntu 14.04?

    
por John 18.04.2014 / 03:12
fonte

4 respostas

124

Na página de manual :

  

PermitRootLogin

     

Especifica se o root pode efetuar login usando ssh (1). O argumento   deve ser “sim”, “sem senha”, “somente comandos forçados” ou   "não". O padrão é "sim".

     

Se esta opção estiver definida como "sem senha", senha   a autenticação está desativada para root.

     

Se esta opção estiver configurada para “somente comandos forçados”, o login root com   autenticação de chave pública será permitida, mas somente se o   A opção command foi especificada (o que pode ser útil para   backups remotos, mesmo que o login root normalmente não seja permitido). Todos   outros métodos de autenticação estão desativados para root.

     

Se esta opção estiver definida como "não", a raiz não poderá efetuar login.

Assim, without-password permite login de raiz apenas com autenticação de chave pública. Isso geralmente é usado com scripts de shell e tarefas automatizadas.

    
por Florian Diesch 18.04.2014 / 03:26
fonte
15

Na verdade, essa configuração não faz praticamente nada se você estiver usando autenticação PAM. Na parte inferior do arquivo de configuração sshd_config , você encontrará:

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

A configuração padrão no Ubuntu é usar a autenticação PAM:

UsePAM yes
    
por Atari911 15.11.2014 / 18:34
fonte
3

Note que há razões legítimas para fazer o login via root (mas usando chaves criptográficas e nunca uma senha). Um exemplo típico é a sincronização remota de dois servidores (para que um deles seja usado como failover). Como a estrutura deve ser idêntica, geralmente é necessária uma senha de root.

Aqui está um exemplo usando o unison para a sincronização: link

    
por Gwyneth Llewelyn 17.01.2015 / 21:26
fonte
0

Em versões mais recentes do sshd, "sem senha" foi alterado para "proibir senha".

Ambas as versões funcionam, provavelmente é melhor usar "proibir senha" se você puder: ela se explica melhor.

    
por teknopaul 23.03.2018 / 00:12
fonte

Tags