Bagaimana cara mengatur kunci SSH publik untuk pengguna root di server?

11

Saya mencoba mengikuti Dokumen Slicehost untuk mengatur server saya. Saya mencapai bagian SSH. Saya membuatnya seperti tertulis, tetapi ketika saya keluar dari root, saya tidak dapat mengakses root @ IP_ADDRESS -p 30000 lagi! tetapi saya dapat mengakses pengguna @ IP_ADDRESS -p 30000.

Jadi, pertanyaannya adalah, bagaimana cara menetapkan kunci SSH publik untuk pengguna root?

amrnt
sumber
Pertanyaan ini harus di ServerFault, bukan di StackOverflow.
Henning

Jawaban:

7

Saya tidak yakin apa yang Anda maksud. Anda berarti Anda tidak dapat login sebagai root dengan public_key Anda? Jika demikian, periksa /root/.ssh/authorized_keys

Juga melihat / etc / ssh / sshd_config Ini harus berisi:

PermitRootLogin yes
kalkin
sumber
Saya menemukan jawabannya lebih awal! tapi ya ada beberapa masalah di sshd_config. terima kasih tetapi hanya PremitRootLogin yang tidak berhasil
3

Lihat di log. sshd biasanya memberikan pesan bermanfaat. Coba /var/log/auth.logatau /var/log/messagesatau /var/log/syslog(atau yang lainnya) tergantung pada platform Anda.

Kedengarannya seperti masalah izin bagi saya. Coba perintah ini (sebagai root): chmod 700 ~root ~root/.ssh && chmod 600 ~root/.ssh/authorized_keys

fredden
sumber
1

/ Etc / ssh / sshd_config ini berfungsi dengan baik!

# 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
sumber
0

Peringatan: Anda akan memerlukan akses fisik langsung ke mesin, atau login ssh yang sudah berfungsi (melalui otentikasi kata sandi atau pasangan kunci pengguna super).

Untuk menjalankan ini pada kotak Debian saya (host SSH saya), saya perlu membuat pasangan kunci baru (saya menggunakan Putty pada Windows 10; klien SSH saya), lalu memastikan yang berikut seperti yang sudah dibahas dengan mengedit 'sshd_config ':

$ sudo nano /etc/ssh/sshd_config

Dan menempatkan garis-garis ini, atau menghapus komentar sesuai kebutuhan, dan menyimpan / menulis:

# Authentication:
PermitRootLogin yes

Maka saya perlu mengakses akun root, jadi saya mengeluarkan:

$ sudo su

... lalu buat folder yang diperlukan untuk ssh dan file untuk otor_keys:

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

Kemudian masukkan kunci publik yang relevan di sini, saya menempelkan kunci publik saya dari dekat bagian atas Putty-Gen, dan menyimpan / menulis-keluar.

Kemudian restart daemon sshd, masih sebagai root, dengan:

# systemctl restart sshd
# exit
# exit

Kemudian setelah saya menambahkan file .ppk yang relevan di SSH Auth saya di dalam Putty, itu bekerja seperti pesona!

Kunci untuk ini adalah bahwa semua pengguna (root dan pengguna lain) semua berbagi konfigurasi yang sama di / etc / ssh / sshd_config, tetapi mereka tidak semua berbagi file 'otor_keys' yang sama, jadi saya perlu membuat root yang khusus untuk ini bekerja.

Anda tidak bisa begitu saja menambahkan kunci publik yang dihasilkan untuk akun root di file /home/yournameuser/.ssh/authorized_keys - sepertinya sistem tidak mencari akses root di sana.

Bux Fiddy
sumber