Wie setze ich einen öffentlichen SSH-Schlüssel für den Root-Benutzer auf dem Server?


10

Ich versuche, Slicehost Document zu folgen, um meinen Server einzurichten . Ich erreichte die SSH-Sektion. Ich habe es wie geschrieben gemacht, aber wenn ich mich von root abgemeldet habe, kann ich nicht mehr auf root @ IP_ADDRESS -p 30000 zugreifen! aber ich kann auf Benutzer @ IP_ADDRESS -p 30000 zugreifen.

Die Frage ist also, wie ein öffentlicher SSH-Schlüssel für den Root-Benutzer festgelegt wird.


Diese Frage sollte sich auf ServerFault und nicht auf StackOverflow befinden.
Henning

Antworten:


7

Ich bin mir nicht sicher was du meinst. Du meinst, du kannst dich nicht mit deinem public_key als root anmelden? Wenn ja, überprüfen Sie /root/.ssh/authorized_keys

Schauen Sie sich auch / etc / ssh / sshd_config an. Es sollte enthalten:

PermitRootLogin yes

Ich habe es früh herausgefunden! aber ja war einige probleme in der sshd_config. danke, aber nur PremitRootLogin macht den Trick nicht

3

Schauen Sie sich die Protokolle an. sshd gibt normalerweise hilfreiche Nachrichten. Versuchen Sie /var/log/auth.logoder /var/log/messagesoder /var/log/syslog(oder etwas anderes) abhängig von Ihrer Plattform.

Klingt für mich allerdings nach einem Berechtigungsproblem. Versuchen Sie diese Befehle (als root): chmod 700 ~root ~root/.ssh && chmod 600 ~root/.ssh/authorized_keys


1

Diese / etc / ssh / sshd_config funktioniert gut!

# 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

0

Vorsichtsmaßnahme: Sie benötigen direkten physischen Zugriff auf das Gerät oder eine bereits funktionsfähige SSH-Anmeldung (über Kennwortauthentifizierung oder Super-User-Schlüsselpaar).

Damit dies auf meiner Debian-Box (meinem SSH-Host) funktioniert, musste ich ein neues Schlüsselpaar generieren (ich habe Putty unter Windows 10 verwendet; meinen SSH-Client) und dann Folgendes sicherstellen, wie bereits durch Bearbeiten von 'sshd_config beschrieben ':

$ sudo nano /etc/ssh/sshd_config

Und diese Zeilen nach Bedarf einfügen oder auskommentieren und speichern / ausschreiben:

# Authentication:
PermitRootLogin yes

Dann musste ich auf das Root-Konto zugreifen, also habe ich Folgendes ausgegeben:

$ sudo su

... und dann die erforderlichen Ordner für ssh und eine Datei für autorisierte_Tasten erstellen:

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

Dann geben Sie den entsprechenden öffentlichen Schlüssel hier ein, ich habe meinen von oben in Putty-Gen eingefügt und gespeichert / ausgeschrieben.

Starten Sie dann den sshd-Daemon neu, immer noch als root, mit:

# systemctl restart sshd
# exit
# exit

Nachdem ich die entsprechende PPK-Datei in meine SSH-Authentifizierung in Putty eingefügt hatte, funktionierte es wie ein Zauber!

Der Schlüssel dazu ist, dass alle Benutzer (root und andere Benutzer) dieselbe Konfiguration in / etc / ssh / sshd_config verwenden, aber nicht alle dieselben 'autorisierten_Schlüssel'-Dateien, daher musste ich root-spezifische Dateien für erstellen das zu arbeiten.

Sie können den für das Root-Konto generierten öffentlichen Schlüssel nicht einfach in die Datei /home/yournameuser/.ssh/authorized_keys einfügen - anscheinend sucht das System dort nicht nach Root-Zugriff.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.