Come impostare la chiave SSH pubblica per l'utente root sul server?


11

Sto cercando di seguire il documento Slicehost per configurare il mio server. Ho raggiunto la sezione SSH. L'ho fatto come scritto, ma quando mi sono disconnesso da root, non posso accedere di nuovo a root @ IP_ADDRESS -p 30000! ma posso accedere all'utente @ IP_ADDRESS -p 30000.

Quindi, la domanda è: come impostare una chiave SSH pubblica per l'utente root?


Questa domanda dovrebbe essere su ServerFault, non su StackOverflow.
Henning,

Risposte:


7

Non sono sicuro di cosa intendi. Vuoi dire che non puoi accedere come root con la tua public_key? In tal caso, controllare /root/.ssh/authorized_keys

Guarda anche / etc / ssh / sshd_config Dovrebbe contenere:

PermitRootLogin yes

l'ho capito presto! ma sì, c'erano alcuni problemi in sshd_config. grazie ma solo PremitRootLogin non riesce a fare il trucco

3

Dai un'occhiata nei registri. sshd di solito dà messaggi utili. Prova /var/log/auth.logo /var/log/messageso /var/log/syslog(o qualcos'altro) a seconda della tua piattaforma.

Mi sembra un problema con le autorizzazioni. Prova questi comandi (come root): chmod 700 ~root ~root/.ssh && chmod 600 ~root/.ssh/authorized_keys


1

Questo / etc / ssh / sshd_config funziona bene!

# 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

Avvertenza: sarà necessario un accesso fisico diretto alla macchina o un accesso ssh già funzionante (tramite autenticazione password o coppia di chiavi superutente).

Per far funzionare tutto questo sul mio Debian box (il mio host SSH), dovevo generare una nuova coppia di chiavi (ho usato Putty su Windows 10; il mio client SSH), quindi assicurarmi quanto segue come già discusso modificando 'sshd_config ':

$ sudo nano /etc/ssh/sshd_config

E inserendo queste righe, o decommentandole secondo necessità, e salvando / scrivendo:

# Authentication:
PermitRootLogin yes

Quindi avevo bisogno di accedere all'account di root, quindi emetto:

$ sudo su

... e quindi crea le cartelle necessarie per ssh e un file per le chiavi autorizzate:

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

Quindi inserisci la chiave pubblica pertinente qui, ho incollato il mio da quasi la parte superiore di Putty-Gen e salva / scrivi.

Quindi riavviare il demone sshd, sempre come root, con:

# systemctl restart sshd
# exit
# exit

Quindi, dopo aver aggiunto il relativo file .ppk nel mio SSH Auth in Putty, ha funzionato come un incantesimo!

La chiave di ciò è che tutti gli utenti (root e altri utenti) condividono tutti la stessa configurazione in / etc / ssh / sshd_config, ma non condividono tutti gli stessi file 'authorized_keys', quindi dovevo crearne uno specifico per questo per funzionare.

Non puoi semplicemente aggiungere la chiave pubblica generata per l'account root nel file /home/yournameuser/.ssh/authorized_keys - sembra che il sistema non cerchi l'accesso root.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.