Como definir a chave SSH pública para o usuário root no servidor?

11

Estou tentando seguir o documento Slicehost para configurar meu servidor. Cheguei à seção SSH. Eu fiz como foi escrito, mas quando eu saí do root, não consigo acessar root @ IP_ADDRESS -p 30000 novamente! mas posso acessar o usuário @ IP_ADDRESS -p 30000.

Então, a questão é: como definir uma chave SSH pública para o usuário root?

amrnt
fonte
Esta pergunta deve estar no ServerFault, não no StackOverflow.
Henning

Respostas:

7

Não sei bem o que você quer dizer. Você quer dizer que não pode fazer login como root com sua public_key? Nesse caso, verifique /root/.ssh/authorized_keys

Veja também / etc / ssh / sshd_config Ele deve conter:

PermitRootLogin yes
Kalkin
fonte
eu descobri isso cedo! mas sim, houve alguns problemas no sshd_config. obrigado, mas apenas PremitRootLogin não faz o truque
3

Dê uma olhada nos logs. O sshd geralmente envia mensagens úteis. Tente /var/log/auth.logou /var/log/messagesou /var/log/syslog(ou outra coisa), dependendo da sua plataforma.

Parece um problema de permissões para mim. Experimente estes comandos (como root): chmod 700 ~root ~root/.ssh && chmod 600 ~root/.ssh/authorized_keys

Fredden
fonte
1

Este / etc / ssh / sshd_config funciona bem!

# Package generated configuration file
# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for
Port 30000
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes
amrnt
fonte
0

Advertência: você precisará de acesso físico direto à máquina ou um login ssh já funcional (via autenticação por senha ou par de chaves de superusuário).

Para que isso funcione na minha caixa Debian (meu host SSH), eu precisava gerar um novo par de chaves (usei o Putty no Windows 10; meu cliente SSH) e depois garantir o seguinte, como já discutido editando 'sshd_config ':

$ sudo nano /etc/ssh/sshd_config

E colocando essas linhas, ou removendo o comentário, conforme necessário, e salvando / gravando:

# Authentication:
PermitRootLogin yes

Então eu precisava acessar a conta root, então emito:

$ sudo su

... e, em seguida, crie as pastas necessárias para o ssh e um arquivo para allowed_keys:

# cd /root
# mkdir .ssh
# cd .ssh
# nano authorized_keys

Em seguida, coloque a chave pública relevante aqui, colei a minha perto do topo da Putty-Gen e salve / escreva.

Em seguida, reinicie o daemon sshd, ainda como root, com:

# systemctl restart sshd
# exit
# exit

Depois que eu adicionei o arquivo .ppk relevante no meu SSH Auth dentro do Putty, funcionou como um encanto!

A chave para isso é que todos os usuários (root e outros usuários) compartilham a mesma configuração em / etc / ssh / sshd_config, mas nem todos compartilham os mesmos arquivos 'protected_keys', então eu precisava criar arquivos raiz específicos para isso funcionar.

Você não pode simplesmente adicionar a chave pública gerada para a conta raiz no arquivo /home/yournameuser/.ssh/authorized_keys - parece que o sistema não procura por acesso raiz.

Fiddy Bux
fonte