Làm cách nào để đặt khóa SSH công khai cho người dùng root trên máy chủ?


11

Tôi đang cố gắng theo dõi Tài liệu Slicehost để thiết lập máy chủ của mình. Tôi đã đạt đến phần SSH. Tôi đã viết nó dưới dạng văn bản, nhưng khi tôi đăng xuất từ ​​root, tôi không thể truy cập root @ IP_ADDRESS -p 30000 một lần nữa! nhưng tôi có thể truy cập người dùng @ IP_ADDRESS -p 30000.

Vì vậy, câu hỏi là, làm thế nào để thiết lập khóa SSH công khai cho người dùng root?


Câu hỏi này phải có trên ServerFault, không phải trên StackOverflow.
Henning

Câu trả lời:


7

Tôi không chắc ý của bạn là gì. Bạn có nghĩa là bạn không thể đăng nhập bằng root với public_key của bạn? Nếu vậy hãy kiểm tra /root/.ssh/authorized_keys

Cũng đã xem / etc / ssh / sshd_config Nó nên chứa:

PermitRootLogin yes

tôi đã tìm ra nó sớm! nhưng vâng là một số vấn đề trong sshd_config. cảm ơn nhưng chỉ PremitRootLogin không thực hiện được mánh khóe

3

Có một cái nhìn trong các bản ghi. sshd thường cung cấp các thông điệp hữu ích. Hãy thử /var/log/auth.loghoặc /var/log/messageshoặc /var/log/syslog(hoặc cái gì khác) tùy thuộc vào nền tảng của bạn.

Âm thanh như một vấn đề quyền đối với tôi mặc dù. Hãy thử các lệnh này (với quyền root): chmod 700 ~root ~root/.ssh && chmod 600 ~root/.ssh/authorized_keys


1

Cái này / etc / ssh / sshd_config hoạt động tốt!

# 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

Hãy cẩn thận: Bạn sẽ cần truy cập vật lý trực tiếp vào máy hoặc đăng nhập ssh đã hoạt động (thông qua xác thực mật khẩu hoặc cặp khóa siêu người dùng).

Để làm cho nó hoạt động trên hộp Debian của tôi (máy chủ SSH của tôi), tôi cần tạo một cặp khóa mới (tôi đã sử dụng Putty trên Windows 10; máy khách SSH của tôi), sau đó đảm bảo các điều sau như đã thảo luận bằng cách chỉnh sửa 'sshd_config ':

$ sudo nano /etc/ssh/sshd_config

Và đưa các dòng này vào hoặc bỏ ghi chú theo yêu cầu và lưu / ghi ra:

# Authentication:
PermitRootLogin yes

Sau đó, tôi cần truy cập vào tài khoản root, vì vậy tôi phát hành:

$ sudo su

... và sau đó tạo các thư mục cần thiết cho ssh và một tệp cho ủy quyền:

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

Sau đó đặt khóa công khai có liên quan vào đây, tôi dán khóa của tôi từ gần đỉnh Putty-Gen và lưu / ghi ra.

Sau đó khởi động lại daemon sshd, vẫn là root, với:

# systemctl restart sshd
# exit
# exit

Sau đó, sau khi tôi đã thêm tệp .ppk có liên quan trong SSH Auth của mình trong Putty, nó hoạt động như một cơ duyên!

Chìa khóa cho vấn đề này là tất cả người dùng (root và những người dùng khác) đều có chung cấu hình trong / etc / ssh / sshd_config, nhưng tất cả họ đều không chia sẻ cùng một tệp 'ủy quyền', vì vậy tôi cần tạo các tệp cụ thể gốc cho cái này để làm việc

Bạn không thể chỉ cần thêm khóa công khai được tạo cho tài khoản gốc trong tệp /home/yournameuser/.ssh/authorized_keys - có vẻ như hệ thống không tìm thấy quyền truy cập root.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.