Tôi có thể sử dụng xác thực khóa SSH để đăng nhập vào hệ thống từ xa với tên người dùng khác không?


17

Giả sử tôi có một hệ thống từ xa có tên là "hệ thống từ xa" và tài khoản người dùng "foouser" trên hệ thống đó.

Tôi biết rằng trên hệ thống cục bộ của mình, tôi có thể tạo cặp khóa SSH là "foouser" cục bộ, đặt khóa chung vào tệp "/home/foouser/.ssh/authorized_keys" trên "hệ thống từ xa". Khi tôi SSH là "foouser" từ hệ thống cục bộ của mình thành "hệ thống từ xa", SSH sử dụng cặp khóa để xác thực tôi.

Nhưng nếu tên người dùng cục bộ của tôi không giống với tên người dùng trên hệ thống từ xa thì sao? Đó là, điều gì sẽ xảy ra nếu tôi muốn SSH là "baruser" của người dùng cục bộ thành "hệ thống từ xa"? Rõ ràng, tôi sẽ cần tạo một cặp khóa cho "baruser" và thêm khóa chung vào "/home/foouser/.ssh/authorized_keys". Sau đó, tôi sẽ có thể "ssh foouser @ remotesystem" trong khi đăng nhập là "baruser" cục bộ và SSH sẽ sử dụng cặp khóa để xác thực, phải không?

Tôi đang hỏi bởi vì tôi đang cố gắng để xác thực khóa hoạt động trong kịch bản này, nhưng không thành công. Tôi không chắc là do tên người dùng không phù hợp hay do sự cố cấu hình với máy chủ SSH trên hệ thống từ xa.


Tôi đã quay vòng phía máy chủ ghi nhật ký và nó đã chứng tỏ là một vấn đề với các quyền trên thư mục nhà của người dùng từ xa. Vấn đề được giải quyết! Cảm ơn tất cả những người đã đưa ra câu trả lời.
Matt Hurne

Câu trả lời:


11

Vâng, bạn có thể làm điều này, giống như bạn mô tả nó.

baruser @ tại đây ~ $ ssh-add -l
4096 10: b3: fd: 29: 08: 86: 24: a6: da: 0a: dd: c6: 1e: b0: 66: 6a id_rsa (RSA)
baruser @ here ~ $ ssh foouser @ remotesystem
tin nhắn motd, vv
foouser @ remotesystem ~ $

Cảm ơn câu trả lời. Tôi biết tôi không điên ... :-) Phải có điều gì đó không đúng với cấu hình máy chủ SSH của hệ thống từ xa, ngăn chặn xác thực khóa hoạt động hoàn toàn.
Matt Hurne

4
Nếu bạn thực hiện "ssh -V foouser @ remotesystem", bạn có thể nhận được một số thông tin về những gì sai. Thông thường, đó là lỗi cấp phép trên ~ / .ssh.
Paul Tomblin

4
không -V (hiển thị số phiên bản) mà là -vvv (mức độ dài tối đa)
Leven

10

Đó là một chút của một bên, nhưng .....

Nếu bạn luôn sử dụng cùng tên người dùng cho một máy chủ từ xa, bạn cũng có thể thấy hữu ích khi thêm máy chủ vào cấu hình ssh của mình:

Host remotesystem
    User baruser

Bằng cách đó, bạn không cần phải nhớ chỉ định tên người dùng khi đăng nhập và bạn loại trừ khi gặp sự cố với khóa trong tương lai.


5

Tên người dùng cục bộ của bạn không thực sự quan trọng (ngoài khóa riêng phải nằm trong thư mục nhà của người dùng cục bộ của bạn). Chỉ cần sao chép khóa vào phần người dùng từ xa authorized_keysvà nó sẽ hoạt động.


3

Với bất kỳ vấn đề nào liên quan đến ssh, điều đầu tiên cần làm là tăng tính dài dòng của máy khách:

người dùng ssh @ máy -vvv

Nếu điều này không cung cấp cho bạn bất kỳ thông tin chi tiết nào về những gì sai, bạn cần thay đổi cấp độ nhật ký trên máy chủ và khởi động lại daemon.

Đăng nhập DEBUG3

Bạn nên tìm đầu ra gỡ lỗi trong /var/log/auth.log (hoặc nơi ssh được cấu hình để đăng nhập). Khi bạn đã tìm thấy vấn đề, hãy nhớ đặt nó trở lại cách bạn tìm thấy nó.


2

Các quyền trên thư mục .ssh trên cả hai máy đều chính xác. Nói chung, điều đó có nghĩa là 700 trên thư mục .ssh và nhiều nhất là 755 trên thư mục chính. Ngoài 600 trên tất cả các tệp trong thư mục .ssh.

Nếu người dùng trên hệ thống từ xa là root, hãy chắc chắn rằng root có thể ssh. (PermitRootLogin trong sshd_config) và khóa chung đó (PubkeyAuthentication) và nếu cần RSA (RSAAuthentication) được bật.


Không phải RSAAuthentication là một phương pháp hoàn toàn riêng biệt?
grawity

RSA là một trong những thuật toán khóa công khai được hỗ trợ bởi SSH (cùng với DSA.) Đây là phương pháp duy nhất trong SSH1.
Alexandre Carmel-Veilleux

2

Nếu bạn đã bật SE Linux, bạn cũng cần phải làm như sau.

Thêm nhãn SELinux để authorized_keyssshd có thể được truy cập.

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh

0

Âm thanh giống như bạn đang làm mọi thứ một cách chính xác, nhưng hãy đảm bảo rằng các quyền là chính xác trên ủy quyền. Chúng nên được đặt thành 600.

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.