Зашифрованный домашний каталог не монтируется автоматически

10

Мне как-то удалось сломать авто-монтирование для моего зашифрованного домашнего каталога.

Каждый раз, когда я вхожу через SSH, я вижу это:

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

Любые идеи, что я сделал, и как я могу это исправить?

ОБНОВИТЬ:

Я настроил аутентификацию по ключу SSH, используя метод , который задним числом является причиной неработающего зашифрованного домашнего каталога.

Итак, мой новый вопрос, как мне заставить его автоматически запрашивать пароль после того, как я вошел в систему с ключом аутентификации SSH?

Стивен Р.К.
источник
Вам предлагается ввести пароль при входе? Есть ли в системном журнале сообщения eCryptfs?
Дастин Киркланд
@DustinKirkland, см. Мое обновление в вопросе. Я понял, что это потому, что я настроил аутентификацию по ключу SSH ... поэтому пароль не запрашивается.
Стивен RC
ага, ну, вот и все ;-) Я выложу лучший ответ ниже, сейчас.
Дастин Киркланд

Ответы:

28

Итак, в то время как это можно использовать аутентификацию SSH Public Key , чтобы войти в вашу систему без ввода пароля (даже если ваш домашний каталог зашифрован), это не возможно для автоматического монтирования зашифрованного каталога.

Чтобы решить эту проблему, вам нужно добавить строку в конец вашего несмонтированного $ HOME / .profile:

ecryptfs-mount-private

Это гарантирует, что после входа в систему с использованием аутентификации с открытым ключом SSH вам будет предложено ввести пароль и подключить зашифрованные данные. Если он уже смонтирован, то эта команда должна просто завершиться успешно.

Наслаждайтесь!

Полное раскрытие: я один из авторов и сопровождающих eCryptfs.

Дастин Киркланд
источник
1
Круто, спасибо, это делает именно то, что я хочу :) Я должен был добавить и cd /home/$HOMEв файл .profile, чтобы обновить его, хотя после того, как он расшифровывался.
Стивен RC
1
Просто упомянуть, что если вы используете zshего, нужно ~/.zprofileвместо~/.profile
Тимми О'Махони
Может быть, это поможет другим: у меня была проблема, когда, ecryptfs-mount-privateказалось, ничего не делал; даже не спрашиваю пароль. Оказывается, он сработал и не нуждался в пароле, потому что я уже ввел его при использовании sudoдля чего-то другого, но мне нужно было изменить текущий рабочий каталог /home/arthurобратно и обратно, прежде чем я увидел свои файлы.
Артур Такка
Спасибо @ TimmyO'Mahony! Я бы по выбору не использовал, zshно это была совершенно новая установка, и я помню, что видел, что это не могло спасти мою историю .zsh ...
Auspex
2

Попробуйте следующее:

  1. Убедитесь, что /etc/pam.d/common-sessionэта строка содержит:

     # Encrypt home
     session    optional    pam_ecryptfs.so unwrap
    
  2. Убедитесь, что /etc/pam.d/common-authэта строка содержит:

     auth   optional    pam_ecryptfs.so unwrap
    
  3. Убедитесь, что он /etc/pam.d/sshdсодержит следующие строки:

     # Standard Un*x authorization.
     @include common-account
    
     # Standard Un*x session setup and teardown.
     @include common-session
    
  4. Если вы недавно изменили пароль пользователя, проверьте /etc/pam.d/common-password

    Если он не содержит эту строку:

     password   optional    pam_ecryptfs.so
    

    Тогда вам нужен старый пароль для перенастройки ecryptfs.

    Я предлагаю изменить свою учетную запись на прежний пароль, используя, passwdа затем добавив приведенную выше строку, /etc/pam.d/common-passwordа затем изменив пароль на новый пароль.

    В качестве альтернативы вы можете попробовать это:

    ecryptfs-setup-private

    Убедитесь, что вы вводите тот же пароль, что и пароль вашего пользователя при появлении запроса.

  5. Если ничего из вышеперечисленного не работает, попробуйте запустить, ecryptfs-setup-privateвозможно, это что-то исправит.

  6. Если это все еще не работает, то у меня нет идей, извините.

d_inevitable
источник
Весь этот конфиг выглядит хорошо. Проверьте обновления на мой вопрос, я думаю, что это из-за аутентификации ключа SSH, которую я настроил.
Стивен RC
Попробуйте изменить , optionalчтобы requiredв common-account. Идея состоит в том, что pam должен действительно запрашивать пароль, если он его не получает. Обязательно держите открытую сессию, чтобы не рисковать.
d_inevitable
что вы подразумеваете под "общим счетом"?
Питер
2

Следуя этим инструкциям, которые вы упомянули в своем посте, вы специально сделали это, чтобы вы могли использовать SSH в своей учетной записи без подключения домашней папки. Если вы отмените то, что вы там сделали, и вернете его к тому, что было раньше, то при входе в SSH вы будете вынуждены ввести пароль, если ваш домашний каталог еще не расшифрован. (Если ваш домашний каталог уже расшифрован из-за другого сеанса, тогда ваш SSH-ключ будет отлично работать для соединения без пароля!)

В противном случае альтернативой является запуск ecryptfs-mount-privateпосле входа с помощью ключа для ручной расшифровки домашней папки.

Macil
источник
Есть ли способ ecryptfs-mount-privateавтоматического запуска при входе в систему?
Стивен RC
Просто обновив неработающую ссылку «эти инструкции», так как я должен был отследить ее на компьютере Wayback: stephen.rees-carter.net/thought/… Дополнительные мысли по ссылочной статье: вместо того, чтобы хранить author_keys как /home/.ssh/ % u, сохраняйте авторизованные ключи в /home/.ssh/%u/authorized_keys, где /home/.ssh/%u/ принадлежит% u:% u с 700 разрешениями, а файл принадлежит% u с 600 разрешениями.
Джереми Лайонс
@StephenRC создает ~ / .profile, который запускает ecryptfs-mount-private в вашем незашифрованном домашнем каталоге.
Джереми Лайонс