Thư mục Home được mã hóa không tự động gắn


10

Tôi bằng cách nào đó đã quản lý để phá vỡ tự động gắn cho thư mục nhà được mã hóa của tôi.

Mỗi lần tôi đăng nhập qua SSH, tôi thấy điều này:

valorin@joshua:~$ ls -la
total 44
dr-x------ 3 valorin valorin  4096 2012-03-17 17:10 .
drwxr-xr-x 7 root    root     4096 2012-03-17 11:45 ..
lrwxrwxrwx 1 valorin valorin    56 2012-03-08 20:37 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
-rw------- 1 valorin valorin   917 2012-03-17 19:24 .bash_history
drwx------ 3 valorin valorin  4096 2012-03-16 17:58 .cache
lrwxrwxrwx 1 valorin valorin    33 2012-03-08 20:37 .ecryptfs -> /home/.ecryptfs/valorin/.ecryptfs
-rw-r--r-- 1 root    root    21954 2012-03-08 20:35 .face
lrwxrwxrwx 1 valorin valorin    32 2012-03-08 20:37 .Private -> /home/.ecryptfs/valorin/.Private
lrwxrwxrwx 1 valorin valorin    52 2012-03-08 20:37 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt
-rw------- 1 root    root      703 2012-03-17 17:10 .viminfo

Bất kỳ ý tưởng nào tôi đã làm, và làm thế nào tôi có thể sửa nó?

CẬP NHẬT:

Tôi đã thiết lập xác thực khóa SSH bằng phương thức ở đây , trong trường hợp này là lý do cho thư mục nhà được mã hóa không hoạt động.

Vì vậy, câu hỏi mới của tôi, làm cách nào để nó tự động nhắc nhập mật khẩu sau khi tôi đã đăng nhập bằng khóa auth SSH?


Bạn có được nhắc nhập mật khẩu đăng nhập khi đăng nhập không? Có bất kỳ thông điệp eCryptfs nào trong syslog không?
Dustin Kirkland

@DustinKirkland, xem cập nhật của tôi trong câu hỏi. Tôi nhận ra rằng đó là vì tôi đã thiết lập khóa SSH auth ... vì vậy không có mật khẩu nào được yêu cầu.
Stephen RC

aha, vậy thì xong rồi ;-) Tôi sẽ đăng câu trả lời tốt hơn bên dưới, ngay bây giờ.
Dustin Kirkland

Câu trả lời:


28

Được rồi, vì vậy trong khi có thể sử dụng xác thực SSH Public Key để đăng nhập vào hệ thống của bạn mà không cần nhập mật khẩu (ngay cả khi thư mục chính của bạn được mã hóa), không thể tự động gắn thư mục nhà được mã hóa của bạn.

Để giải quyết vấn đề này, bạn sẽ cần thêm một dòng vào cuối $ HOME / .profile chưa được đếm của bạn :

ecryptfs-mount-private

Điều này sẽ đảm bảo rằng sau khi bạn đăng nhập bằng xác thực SSH Public Key, bạn sẽ được nhắc nhập mật khẩu và sẽ gắn kết dữ liệu được mã hóa của bạn. Nếu nó đã được gắn kết, thì lệnh này sẽ âm thầm thành công.

Thưởng thức!

Tiết lộ đầy đủ: Tôi là một trong những tác giả và người duy trì eCryptfs.


1
Tuyệt vời, cảm ơn, đó chính xác là những gì tôi muốn :) Tôi đã phải thêm cd /home/$HOMEvào tệp .profile, để làm mới nó mặc dù một khi nó đã được giải mã.
Stephen RC

1
Chỉ cần đề cập rằng nếu bạn đang sử dụng zshthì cần phải ~/.zprofilethay thế~/.profile
Timmy O'Mahony

Có lẽ điều này sẽ giúp những người khác: Tôi đã có một vấn đề ecryptfs-mount-privatedường như không làm gì cả; thậm chí không yêu cầu mật khẩu. Hóa ra nó đã hoạt động và không cần mật khẩu vì tôi đã nhập nó trong khi sử dụng sudocho mục đích khác, nhưng tôi cần thay đổi thư mục làm việc hiện tại ra /home/arthurvà quay lại trước khi tôi thấy các tệp của mình.
Arthur Tacca

Cảm ơn bạn @ TimmyO'Mahony! Tôi sẽ không lựa chọn sử dụng zshnhưng đó là một bản cài đặt hoàn toàn mới và tôi nhớ rằng nó không thể lưu lại lịch sử .zsh của tôi ...
Auspex

2

Hãy thử như sau:

  1. Hãy chắc chắn rằng /etc/pam.d/common-sessioncó chứa dòng này:

     # Encrypt home
     session    optional    pam_ecryptfs.so unwrap
    
  2. Hãy chắc chắn rằng /etc/pam.d/common-authcó chứa dòng này:

     auth   optional    pam_ecryptfs.so unwrap
    
  3. Đảm bảo /etc/pam.d/sshdcó chứa các dòng này:

     # Standard Un*x authorization.
     @include common-account
    
     # Standard Un*x session setup and teardown.
     @include common-session
    
  4. Nếu bạn đã thay đổi mật khẩu người dùng gần đây, hãy kiểm tra /etc/pam.d/common-password

    Nếu nó không chứa dòng này:

     password   optional    pam_ecryptfs.so
    

    Sau đó, bạn cần mật khẩu cũ của bạn để cấu hình lại ecryptfs.

    Đề nghị của tôi là thay đổi tài khoản của bạn thành mật khẩu trước đó bằng cách sử dụng passwddòng trên /etc/pam.d/common-passwordvà sau đó thay đổi mật khẩu trở lại mật khẩu mới.

    Ngoài ra, bạn có thể thử điều này:

    ecryptfs-setup-private

    Đảm bảo bạn nhập cùng mật khẩu với mật khẩu người dùng của bạn khi được nhắc.

  5. Nếu không có cách nào ở trên hoạt động, hãy thử chạy ecryptfs-setup-privatecó lẽ nó sẽ sửa một cái gì đó.

  6. Nếu nó vẫn không hoạt động thì tôi hết ý tưởng, xin lỗi.


Tất cả cấu hình đó có vẻ tốt. Kiểm tra các bản cập nhật cho câu hỏi của tôi, tôi nghĩ đó là do khóa SSH auth tôi đã thiết lập.
Stephen RC

Hãy thử thay đổi optionalthành requiredtrong common-account. Ý tưởng là pam nên thực sự nhắc mật khẩu nếu không lấy được. Hãy chắc chắn để giữ một phiên mở để bạn không có nguy cơ tự khóa mình.
d_inevitable

"tài khoản chung" nghĩa là gì?
Peter Fleix

2

Bằng cách làm theo các hướng dẫn mà bạn đã đề cập trong bài đăng của mình, bạn đã thực hiện một cách cụ thể để bạn có thể SSH vào tài khoản của mình mà không cần gắn thư mục nhà. Nếu bạn hoàn tác những gì bạn đã làm ở đó và đưa nó trở lại như trước, thì khi bạn SSH vào, bạn sẽ buộc phải nhập mật khẩu nếu thư mục chính của bạn chưa được giải mã. (Nếu thư mục chính của bạn đã được giải mã do một phiên khác, thì khóa SSH của bạn sẽ hoạt động hoàn hảo cho kết nối không mật khẩu!)

Mặt khác, giải pháp thay thế là chạy ecryptfs-mount-privatesau khi bạn đăng nhập bằng khóa để giải mã thủ công thư mục nhà của bạn.


Có cách nào để ecryptfs-mount-privatechạy tự động khi tôi đăng nhập không?
Stephen RC

Chỉ cần cập nhật liên kết bị hỏng "các hướng dẫn" này, vì tôi phải theo dõi nó trên máy Wayback: stephen.rees-carter.net/ Dùt / cảm nghĩ bổ sung về bài viết được tham chiếu: thay vì lưu trữ ủy quyền như /home/.ssh/ % u, lưu trữ ủy quyền_key trong /home/.ssh/%u/authorized_keys trong đó /home/.ssh/%u/ được sở hữu bởi% u:% u với 700 perms và tệp được sở hữu bởi% u với 600 perm.
Jeremy Lyons

@StephenRC tạo một ~ / .profile chạy ecryptfs-mount-private trong thư mục nhà không được mã hóa của bạn.
Jeremy Lyons
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.