Câu hỏi Quyền trên khóa cá nhân trong thư mục .ssh?


Tôi đã thay đổi quyền của mình trong .ssh và bây giờ khi tôi sử dụng một phần mềm sử dụng khóa riêng của mình, tôi phải nhập mật khẩu của mình mỗi lần. Tôi nên có quyền gì trên id_rsa tập tin để không phải gõ mật khẩu mỗi khi tôi sử dụng một ứng dụng sử dụng nó?

Hiện tại quyền của tôi được đặt thành:

-rw-------@ 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
-rw-------@ 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
-rw-------@ 1 Jody  staff  3855 Sep 13 22:35 known_hosts

277
2017-11-26 22:04


gốc




Các câu trả lời:


Thông thường bạn muốn .ssh quyền truy cập thư mục 700 (drwx------) và khóa công khai (.pub tập tin) 644 (-rw-r--r--). Khóa riêng của bạn (id_rsa) nên là 600 (-rw-------). Cuối cùng, thư mục chính của bạn không được nhóm hoặc người khác viết (tối đa là 755 (drwxr-xr-x)).

Tôi giả định rằng bạn có nghĩa là bạn phải nhập mật khẩu hệ thống / người dùng của bạn mỗi lần, và trước đó bạn không phải. Phản ứng của cdhowie là giả sử bạn đặt mật khẩu / mật khẩu khi tạo khóa của bạn, và nếu bạn đã làm như vậy khi anh ta nói bạn sẽ phải nhập mật khẩu của bạn mỗi lần trừ khi bạn sử dụng một tác nhân ssh.


481
2017-11-26 22:24



Tôi tìm thấy ở nơi khác rằng nếu sử dụng các tập tin authorized_keys, rằng nó nên được chmod'd đến 640, tức là -rw-r -----. - AnneTheAgile
Tôi có thể tìm thông tin này ở đâu trong trang người đàn ông? - Sonique
Tôi đã quay lại bài đăng này khoảng 30 lần. Tôi không thể tin rằng tôi không thể nhớ nó. - JREAM
Điều quan trọng duy nhất là không có gì trong .ssh có thể ghi được cho bất kỳ ai khác và không ai trong số các khóa bí mật có thể đọc được cho bất kỳ ai khác. - Markus Kuhn
@Cerin thực thi quyền trên thư mục cấp khả năng liệt kê các tệp con / thư mục con ngay lập tức của thư mục đó, các tệp bên trong thư mục không "kế thừa" bit thực thi của thư mục mẹ của chúng. - Thomas


Tôi đã đấu tranh với điều này mãi mãi và cuối cùng đã tìm ra những gì là cần thiết. Thay thế $USER ở khắp mọi nơi với tên người dùng SSH bạn muốn đăng nhập vào máy chủ. Nếu bạn đang cố đăng nhập root bạn sẽ cần phải sử dụng /root/.ssh vv, thay vì /home/root/.ssh đó là cách nó dành cho người dùng không phải root.

  • Thư mục chính trên máy chủ không được người khác ghi: chmod go-w /home/$USER
  • Thư mục SSH trên máy chủ cần 700 quyền: chmod 700 /home/$USER/.ssh
  • Tệp Authorized_keys cần quyền 644: chmod 644 /home/$USER/.ssh/authorized_keys
  • Đảm bảo rằng user sở hữu các tệp / thư mục và không root: chown user:user authorized_keys và chown user:user /home/$USER/.ssh
  • Đặt khóa công khai được tạo (từ ssh-keygen) trong người dùng authorized_keys tệp trên máy chủ
  • Đảm bảo rằng thư mục chính của người dùng được đặt thành những gì bạn mong đợi và nó chứa đúng .ssh thư mục mà bạn đã sửa đổi. Nếu không, hãy sử dụng usermod -d /home/$USER $USER để khắc phục vấn đề
  • Cuối cùng, khởi động lại ssh: service ssh restart
  • Sau đó, hãy chắc chắn rằng máy khách có khóa công cộng và các tệp khóa riêng tư trong người dùng cục bộ .ssh thư mục và đăng nhập: ssh user@host.com

62
2018-06-09 20:39



Về đoạn đầu tiên của bạn, tôi có thể ssh với khóa công khai / riêng tư với người dùng trên hộp linux cục bộ của tôi (ví dụ: abc), khác với người dùng trên máy chủ từ xa (ví dụ: def@123.456.789). Tôi chỉ phải đảm bảo rằng người dùng cục bộ sở hữu tệp .ssh địa phương (ví dụ: abc:abc, không phải root:abc) ` - Michael
Cảm ơn bạn đã đặt tất cả các bước và lệnh cho người mới, Alex. Của bạn là một trong những câu trả lời hữu ích nhất ở đây. - Nav
+1. "Tệp Authorized_keys cần 644 quyền" <= điều đó rất quan trọng! - Le Quoc Viet
Nếu bạn đang đưa thư mục .ssh 700 chế độ, sau đó có không có điểm trong việc đưa r-- cho nhóm và những người khác, bởi vì Chỉ có bạn có thể "đi qua" .ssh sau đó (giả sử không có liên kết cứng nào tồn tại đối với các tệp này). Điều tương tự cho câu trả lời được chấp nhận. Mặc định 755 là đủ. - user3125367


Cũng đảm bảo rằng thư mục chính của bạn không được người dùng khác ghi.

chmod g-w,o-w ~


31
2018-01-03 03:50



FYI, lệnh này giả định bạn đăng nhập với tư cách người dùng và không phải root - Alex W


Quyền không nên liên quan đến điều này. Khóa riêng của bạn được mã hóa bằng mật khẩu, vì vậy bạn cần phải nhập khóa riêng tư đó để giải mã và sử dụng được.

Bạn có thể xem xét chạy một tác nhân ssh, có thể cache các khóa đã giải mã và sẽ cung cấp chúng cho các ứng dụng cần chúng.


4
2017-11-26 22:07



Cảm ơn bạn đã thêm thông tin về tác nhân ssh. Có vẻ như có một cái được xây dựng vào Leopard nên tôi nghĩ tôi sẽ làm điều đó. Có một chút rắc rối với nó nhưng tôi sẽ hỏi một câu hỏi khác.
Đừng đánh giá thấp quyền. Họ chắc chắn vẫn tiếp tục chơi. - Alex W
@AlexW Họ đi vào chơi với các khía cạnh khác của ssh, nhưng không phải là một trong những hỏi về câu hỏi. - cdhowie
Nếu bạn không có mật khẩu trên các khóa riêng (whink của các kịch bản được gọi tự động từ xa), nó sẽ không giúp bạn. Quyền là cần thiết ở đây. - nerdoc


Felipe là chính xác - thư mục chứa thư mục .ssh của bạn không được ghi bởi nhóm hoặc nhóm khác. Như vậy chmod go-w ~ là điều hợp lý tiếp theo để thử nếu bạn vẫn được nhắc nhập mật khẩu khi ssh'ing sau khi chạy ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, giả sử bạn không gán cụm mật khẩu trong lệnh ssh-keygen và thư mục .ssh của bạn nằm trong thư mục chính.


4
2018-04-17 20:20