Contents

Làm cách nào bạn có thể khắc phục lỗi SSH"Quyền bị từ chối (khóa công khai)"trên Linux?

SSH là một công cụ hữu ích để kết nối với các máy từ xa, nhưng bạn có thể gặp phải lỗi “Quyền bị từ chối (khóa công khai)” liên quan đến khóa chung của bạn trên Linux. May mắn thay, có một số cách khắc phục dễ dàng mà bạn có thể thử khắc phục sự cố.

Khóa công khai là gì?

Tạo cặp khóa cho SSH trên Linux bao gồm việc tạo cả khóa chung và khóa riêng tương ứng. Khóa riêng được người dùng bảo vệ cẩn thận, trong khi khóa chung được truyền đến các máy chủ từ xa để tạo điều kiện đăng nhập an toàn mà không cần mật khẩu. Khi cố gắng thiết lập kết nối, máy khách SSH trên hệ thống cục bộ sẽ xác minh tính xác thực của khóa chung so với khóa riêng do người dùng nắm giữ.

Lợi ích chính của phương pháp này nằm ở chỗ chỉ cần tiết lộ khóa công khai là đủ. Miễn là một người duy trì tính bảo mật của khóa riêng của họ, họ vẫn được bảo vệ ngay cả khi khóa chung của họ bị lộ, vì khóa công khai sẽ không có kết quả nếu không có khóa công khai.

Để OpenSSH, một giải pháp máy khách và máy chủ nguồn mở phổ biến, hoạt động bình thường, các quyền cụ thể phải được cấp cho một tệp cụ thể nằm trong thư mục chính của người dùng (.ssh/authorized\_keys). Cụ thể, tệp không được cấu hình quyền ghi cho bất kỳ người dùng nào bên ngoài chủ sở hữu, được gọi là “có thể ghi trên thế giới”, nếu không hệ thống sẽ không hoạt động chính xác. Đáng chú ý, do dấu chấm ở đầu xuất hiện trước tên thư mục, tệp này sẽ không xuất hiện trong danh sách tiêu chuẩn của tệp bằng cách sử dụng các lệnh thông thường như “ls”, bắt buộc phải sử dụng lệnh bao quát hơn “ls-A” theo sau là “.

Việc sửa đổi quyền có thể xảy ra khi một tệp được chuyển từ thiết bị này sang thiết bị khác hoặc được tạo trên hệ thống hiện tại của bạn. Tuy nhiên, việc điều chỉnh các cài đặt này rất dễ dàng và có thể được thực hiện nhanh chóng.

Kiểm tra quyền khóa công khai của bạn

Tệp được ủy quyền\_keys là một tệp văn bản bao gồm các khóa chung của khách hàng muốn cấp quyền truy cập vào tài khoản của họ trên hệ thống từ xa. Để xem các đặc quyền của nó, sử dụng lệnh’ls’cùng với tùy chọn’-l’là đủ.

 ls -l ~/.ssh/authorized_keys

/vi/images/ssh-id_rsa-pub-ls-output.jpg

Cấu hình hiện tại thể hiện các tham số ủy quyền áp dụng cho chủ sở hữu, tổ hợp và người dùng bổ sung. Điều cần thiết là phải xem xét kỹ lưỡng sáu ký tự cuối cùng của thẻ. Sự hiện diện của chữ’w’trong đó biểu thị rằng tập thể hoặc các cá nhân không xác định được trao quyền ghi vào nó, do đó khiến cho thỏa thuận dễ gặp rủi ro về bảo mật.

Để cấp cho mình quyền ghi vào một tệp cụ thể đồng thời hạn chế quyền truy cập của những người dùng khác trong cùng nhóm và bên ngoài nhóm đó, bạn có thể sử dụng lệnh “chmod” trong thiết bị đầu cuối của mình. Điều này sẽ cho phép bạn sửa đổi các quyền của tệp cho phù hợp, đảm bảo rằng chỉ những cá nhân được ủy quyền mới có quyền truy cập vào tệp.

Có hai cách: bằng số và bằng ký hiệu.

Một cách tiếp cận khác liên quan đến việc sử dụng các giá trị số để thể hiện các quyền của tệp, yêu cầu ghi nhớ đánh số bát phân cho các quyền cụ thể.

 chmod 700 ~/.ssh/authorized_keys

Phương pháp tượng trưng dễ ghi nhớ hơn:

 chmod go-w ~/.ssh/authorized_keys 

Sao chép khóa an toàn bằng ssh-agent

/vi/images/ssh-agent.jpg

Khuyến khích sử dụng chương trình ssh-agent để bảo mật thông tin nhạy cảm như khóa riêng được sử dụng trong xác thực SSH. Phương pháp này giúp loại bỏ nhu cầu nhập lệnh dòng lệnh theo cách thủ công hoặc lo lắng về các vấn đề cấp phép tiềm ẩn có thể phát sinh khi sao chép và dán trực tiếp vào các tệp khóa được ủy quyền.

Để khởi động ssh-agent, hãy sử dụng lệnh này:

 eval "$(ssh-agent-s)"

Để truy cập máy chủ ở xa bằng cách sử dụng tác nhân SSH thông qua giao diện dòng lệnh, hãy sử dụng tùy chọn “-A” cùng với lệnh “ssh”.

 ssh -A [email protected] 

Kiểm tra cài đặt sshd của Máy chủ từ xa

/vi/images/sshd-config-file.jpg

Trong trường hợp các đề xuất trước đây của chúng tôi không giải quyết được sự cố, một hành động tiềm năng có thể bao gồm việc điều chỉnh cài đặt của máy chủ sshd trên thiết bị từ xa, miễn là bạn có đặc quyền quản trị. Tuy nhiên, đây nên được coi là biện pháp cuối cùng vì việc thực hiện các sửa đổi như vậy có thể làm tổn hại đến tính bảo mật của hệ thống của bạn. Trong trường hợp bạn không thể sửa đổi cấu hình trực tiếp, bạn sẽ cần tìm kiếm sự trợ giúp từ quản trị viên hệ thống được chỉ định để giải quyết mọi vấn đề dai dẳng liên quan đến việc thiết lập kết nối SSH.

Tệp chứa cài đặt chung cho trình nền SSH (sshd) được đặt tại “/etc/ssh/sshd\_config”. Nó thuộc sở hữu của người dùng root và yêu cầu quyền quản trị để được truy cập hoặc sửa đổi. Để thực hiện chỉnh sửa bằng trình soạn thảo văn bản Vim, người ta có thể thực thi lệnh “sudo vim/etc/ssh/sshd\_config” sau đó nhấn enter.

 sudo vim /etc/ssh/sshd_config 

Để sshd cho phép đăng nhập mặc dù tệp\_keys được ủy quyền có thể truy cập công khai, cần phải định cấu hình tệp cấu hình của máy chủ bằng cách đặt tham số “StrictModes” thành “no”.

Lưu nó và khởi động lại máy chủ SSH:

 sudo systemctl restart sshd.service

Bây giờ bạn có thể sửa lỗi quyền truy cập khóa công khai SSH

Trong trường hợp phát sinh các vấn đề liên quan đến khóa công khai SSH trên hệ thống bên ngoài, việc xác minh và điều chỉnh quyền truy cập tệp thường là đủ để đảm bảo tính độc quyền của khóa của bạn. Ngoài ra, việc sử dụng tác nhân ssh có thể tăng cường bảo mật trong quá trình kết nối. Tuy nhiên, nếu cần thiết, việc nới lỏng độ cứng của máy chủ SSH có thể được coi là giải pháp cuối cùng.