Câu hỏi ssh "quyền quá mở" lỗi


Tôi đã có một vấn đề với mac của tôi, nơi tôi không thể lưu bất kỳ loại tập tin trên đĩa nữa. Tôi đã phải khởi động lại OSX sư tử và thiết lập lại các điều khoản trên các tập tin và acls.

Nhưng bây giờ khi tôi muốn cam kết một kho lưu trữ, tôi nhận được lỗi sau từ ssh:

Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

Cấp quyền nào tôi nên cung cấp cho tệp id_rsa?


1270
2018-02-14 02:02


gốc


ssh không phải là một công cụ được sử dụng để lập trình? - Andrew Norman
Đối với một câu hỏi phổ biến như vậy có vẻ như bạn đang đánh bạc! ;) - Jamie Hutber
Yeah rất ngu ngốc rằng điều này đã được đóng cửa cho điều đó. - tommybond
Stack Overflow là một trang web cho các câu hỏi lập trình và phát triển. Câu hỏi này dường như không có chủ đề vì nó không phải là về lập trình hay phát triển. Xem Tôi có thể hỏi những chủ đề nào ở đây trong Trung tâm trợ giúp. Có lẽ Siêu người dùng hoặc là Trao đổi ngăn xếp Unix & Linux sẽ là một nơi tốt hơn để hỏi. - jww
chắc chắn không phải là một câu hỏi unix / linux vì ssh là một tiêu chuẩn bảo mật được sử dụng ngay cả trên các cửa sổ, đối số vô căn cứ - pythonian29033


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


Bạn chỉ có thể đọc các khóa:

chmod 400 ~/.ssh/id_rsa

600 dường như cũng tốt (thực tế tốt hơn trong hầu hết các trường hợp, bởi vì bạn không cần phải thay đổi quyền của tệp để chỉnh sửa nó).

Phần liên quan từ manpage (man ssh)

 ~/.ssh/id_rsa
         Contains the private key for authentication.  These files contain sensitive 
         data and should be readable by the user but not
         accessible by others (read/write/execute).  ssh will simply ignore a private 
         key file if it is              
         accessible by others.  It is possible to specify a
         passphrase when generating the key which will be used to encrypt the sensitive 
         part of this file using 3DES.

 ~/.ssh/identity.pub
 ~/.ssh/id_dsa.pub
 ~/.ssh/id_ecdsa.pub
 ~/.ssh/id_rsa.pub
         Contains the public key for authentication.  These files are not sensitive and 
         can (but need not) be readable by anyone.

2189
2018-02-14 02:05



400 quá thấp vì điều đó khiến người dùng của bạn không thể ghi được. 600 thực sự được khuyến nghị vì nó cho phép chủ sở hữu đọc-ghi không chỉ đọc. - jfreak53
Tôi phát hiện ngày nay có những lúc 400 có liên quan. Giả sử bạn có tệp authorized_keys có no-pty et al các tính năng được đặt. Nếu tệp có thể ghi, người dùng thực sự có thể ghi đè tệp authorized_keys và có được quyền truy cập trình bao tương tác! Một cái gì đó để ghi nhớ, mặc dù chắc chắn không phải là trường hợp chung cho hầu hết mọi người. - quickshiftin
AWS thực sự khuyên bạn nên cho phép 400 trên trang web của họ. Đó là những gì tôi đã làm trên OS X và nó hoạt động. - George Mylonas
Điều này chắc chắn hoạt động và an toàn hơn. Nhược điểm duy nhất là bạn sau đó phải thay đổi nó thành 600 để chỉnh sửa. Đối với id_rsa, và id_rsa.pub tôi nghi ngờ rằng vấn đề bởi vì bạn hiếm khi bao giờ sẽ chỉnh sửa các tập tin, nhưng đối với authorized_keys, nó có thể gây phiền nhiễu. Tốt nhất để hiểu sự cân bằng và cấu hình từng hệ thống một cách thích hợp. - quickshiftin
Tôi cho rằng nó cũng phụ thuộc vào mức độ thường xuyên bạn chỉnh sửa chúng. Nhiều người đặt nó và quên nó đi, vì thế 400 người sẽ an toàn hơn với người khác và hành động của bạn; sửa đổi thành 600 khi cần thiết. Nếu đó là một phần của quy trình làm việc của bạn và ssh-savy của bạn, thì có lẽ nó sẽ là một trở ngại cho việc thay đổi quyền truy cập. - vol7ron


Sử dụng Cygwin trong Windows 8.1, có một lệnh cần được chạy:

chgrp Người dùng ~ / .ssh / id_rsa

Sau đó, giải pháp được đăng ở đây có thể được áp dụng, 400 hoặc 600 là OK.

chmod 600 ~ / .ssh / id_rsa

Tham khảo: http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8


77
2018-04-11 11:17



Điều này làm việc cho tôi! - Memonic
phụ thuộc vào miền địa phương. Tôi đã phải chạy "chgrp Użytkownicy ~ / .ssh / id_rsa" vì "Người dùng" không có nhóm như vậy. - Marcos
Tôi cũng phải làm điều này. Thư mục cygwin của tôi ở vị trí mặc định (C:\cygwin64) vì vậy nó có thể được thừa kế quyền. Lạ lùng là điều này không xảy ra trên các máy tính xách tay khác mà tôi sở hữu. - SirBraneDamuj
@Marcos Tôi đã thêm một câu trả lời hoạt động bất kể ngôn ngữ: stackoverflow.com/a/28647713/67013 - thehouse
Windows 10. Chỉ sử dụng lệnh thứ hai. Làm việc như người ở. - StalkAlex


Giải pháp độc lập miền địa phương hoạt động trên Windows 8.1 là:

chgrp 545 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

GID 545 là một ID đặc biệt luôn đề cập đến nhóm 'Người dùng', ngay cả khi bạn sử dụng ngôn ngữ khác với Người dùng.


29
2018-02-21 15:51



Cảm ơn bạn rất nhiều... - Richard Dally
Nó cũng hoạt động tốt với macbook - Ravi Kumar
Làm việc trên Windows 10. - FarO
hoạt động trên Windows 7 tại đây. - Terry Lin


0600 là những gì tôi đặt tại (và nó hoạt động)


22
2018-02-14 02:04





AFAIK các giá trị là:

700 cho thư mục ẩn ".ssh" nơi tệp khóa nằm

600 cho keyfile "id_rsa"


20
2017-11-13 07:57



Cảm ơn nhiều - mstzn


Có một ngoại lệ đối với yêu cầu quyền "0x00" trên khóa. Nếu khóa được sở hữu bởi root và nhóm thuộc sở hữu của một nhóm với người dùng trong đó, thì có thể là "0440" và bất kỳ người dùng nào trong nhóm đó đều có thể sử dụng khóa.

Tôi tin rằng điều này sẽ làm việc với bất kỳ quyền nào trong tập hợp "0xx0" nhưng tôi chưa thử nghiệm mọi kết hợp với mọi phiên bản. Tôi đã thử 0660 với 5.3p1-84 trên CentOS 6, và nhóm không phải là nhóm chính của người dùng mà là một nhóm thứ cấp, và nó hoạt động tốt.

Điều này thường sẽ không được thực hiện cho khóa cá nhân của ai đó, nhưng đối với một chìa khóa được sử dụng để tự động hóa, trong một tình huống mà bạn không muốn ứng dụng có thể gây rối với khóa.

Các quy tắc tương tự áp dụng cho các hạn chế thư mục .ssh.


13
2017-11-13 17:18



Rất hữu dụng. Cảm ơn bạn đã đăng bài này. - nonrectangular


những gì đã làm việc cho tôi

chgrp Người dùng FOLDER

chmod 600 FOLDER


5
2018-03-26 22:54



chgrp: grupo inválido: «Người dùng»
Tôi đã thử nhưng tiếp tục ném ra 'nhóm không hợp lệ': Người dùng '', tại sao? sử dụng Windows 10, PowerShell - Jason Goal


Intersting tin nhắn ở đây. Syatem hoạt động đủ thông minh để từ chối các kết nối từ xa nếu khóa riêng của bạn quá mở. Nó hiểu được nguy cơ mà quyền hạn cho id_rsa là mở rộng (đọc, có thể chỉnh sửa bởi bất kỳ ai).

{Người ta có thể đã thay đổi khóa của bạn đầu tiên và sau đó mở nó với các phím anh đã có. }

cd ~/.ssh
chmod 400 id_rsa

PS:

Trong khi làm việc trên nhiều máy chủ (không sản xuất), hầu hết chúng ta cảm thấy cần phải kết nối máy chủ từ xa với ssh. Một ý tưởng tốt là có một pice của mã mức ứng dụng (có thể là java sử dụng jsch) để tạo ra tín thác ssh giữa các máy chủ. Cách kết nối này sẽ không có mật khẩu. Trong khi đó, perl được cài đặt - người ta cũng có thể sử dụng mô-đun net ssh.


2
2018-05-13 07:35