Comment définir la clé SSH publique pour l'utilisateur root sur le serveur?

11

J'essaie de suivre le document Slicehost pour configurer mon serveur. J'ai atteint la section SSH. Je l'ai fait comme écrit, mais quand je me suis déconnecté de root, je ne peux pas accéder à nouveau à root @ IP_ADDRESS -p 30000! mais je peux accéder à l'utilisateur @ IP_ADDRESS -p 30000.

La question est donc de savoir comment définir une clé SSH publique pour l'utilisateur root?

amrnt
la source
Cette question devrait être sur ServerFault, pas sur StackOverflow.
Henning

Réponses:

7

Je ne sais pas ce que tu veux dire. Vous voulez dire que vous ne pouvez pas vous connecter en tant que root avec votre clé publique? Si c'est le cas, vérifiez /root/.ssh/authorized_keys

Regardez aussi / etc / ssh / sshd_config Il devrait contenir:

PermitRootLogin yes
kalkin
la source
je l'ai compris tôt! mais oui, il y avait quelques problèmes dans le sshd_config. merci mais seulement PremitRootLogin ne fait pas l'affaire
3

Jetez un oeil dans les journaux. sshd donne généralement des messages utiles. Essayez /var/log/auth.logou /var/log/messagesou /var/log/syslog(ou autre chose) selon votre plateforme.

Cela ressemble à un problème d'autorisations pour moi. Essayez ces commandes (en tant que root): chmod 700 ~root ~root/.ssh && chmod 600 ~root/.ssh/authorized_keys

Fredden
la source
1

Ce / etc / ssh / sshd_config fonctionne très bien!

# 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
la source
0

Attention: vous aurez besoin d'un accès physique direct à la machine ou d'une connexion ssh déjà fonctionnelle (via une authentification par mot de passe ou une paire de clés de super-utilisateur).

Pour que cela fonctionne sur ma boîte Debian (mon hôte SSH), j'avais besoin de générer une nouvelle paire de clés (j'ai utilisé Putty sur Windows 10; mon client SSH), puis assurez-vous que ce qui suit a déjà été discuté en modifiant 'sshd_config «:

$ sudo nano /etc/ssh/sshd_config

Et mettre ces lignes, ou décommenter au besoin, et enregistrer / écrire:

# Authentication:
PermitRootLogin yes

Ensuite, j'avais besoin d'accéder au compte root, donc je lance:

$ sudo su

... puis créez les dossiers nécessaires pour ssh et un fichier pour authorized_keys:

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

Ensuite, mettez la clé publique pertinente ici, j'ai collé la mienne depuis près du haut de Putty-Gen, et enregistrez / écrivez.

Redémarrez ensuite le démon sshd, toujours en tant que root, avec:

# systemctl restart sshd
# exit
# exit

Ensuite, après avoir ajouté le fichier .ppk pertinent dans mon SSH Auth dans Putty, cela a fonctionné comme un charme!

La clé de tout cela est que tous les utilisateurs (root et autres utilisateurs) partagent tous la même configuration dans / etc / ssh / sshd_config, mais ils ne partagent pas tous les mêmes fichiers 'authorized_keys', donc je devais créer des fichiers spécifiques à la racine pour cela fonctionne.

Vous ne pouvez pas simplement ajouter la clé publique générée pour le compte root dans le fichier /home/yournameuser/.ssh/authorized_keys - il semble que le système n'y recherche pas l'accès root.

Fiddy Bux
la source