SSH с authorized_keys к системе Ubuntu с зашифрованным homedir?

Я недавно настроил новый сервер с Ubuntu кармические 9.10, и когда я создал свой корневой каталог, я принял решение сделать, это зашифровало. Теперь, после загрузки моего authorized_keys файла в ~/.ssh, это не распознано, потому что мой корневой каталог не дешифрован, пока я не вхожу в систему. Существует ли способ заставить ключи SSH работать с зашифрованными корневыми каталогами в соответствии с Ubuntu?

38
задан 26.10.2009, 22:06

3 ответа

Измените эту строку в своем sshd_config файле:

AuthorizedKeysFile /etc/ssh/%u/authorized_keys

И затем переместите свой authorized_keys файл в/etc/ssh/your-username/authorized_keys

Это сообщение документы другой способ решить это.

39
ответ дан 07.12.2019, 08:50

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

Очевидный факт - то, что Ваш зашифрованный корневой каталог шифруется с паролем*, таким образом, единственный способ дешифровать его с тем паролем.

И если Вы думаете, что в теории должно быть возможно использовать Ваш ssh ключ для дешифрования пароля монтирования после входа в систему, который не будет работать, потому что закрытый ключ никогда не отправляется на сервер вообще.

Так в основном, если Вы хотите шифрование, необходимо использовать пароли. Зашифрованные корневые каталоги являются несовместимыми с логинами цифрового отпечатка по той же причине.


*Я знаю, что это более сложно, чем единый пароль, но давайте сохраним это простым на данный момент.

2
ответ дан 07.12.2019, 08:50

Можно использовать больше безопасного открытого ключа, чтобы войти, и затем выполнить следующее для монтирования каталога после ввода в пароле:

ecryptfs-mount-private

Читайте ~/README.txt файл после входа на пути SSH, Вы найдете, что у Вас нет своих файлов, потому что зашифрованный каталог не смонтирован.

Вы не должны использовать открытые ключи без пароля для входа в систему так или иначе. Взгляд на ssh-агент для лучшего пути.

0
ответ дан 07.12.2019, 08:50

Если Вам не нравится изменять установку по умолчанию (я не делаю, мне нравится, когда мои файлы, где я ожидаю, что они будут), затем, Вы могли бы хотеть смотреть на мое сообщение о том, как сделать это:

http://www.enetworkservices.net/wordpress/ssh-public-keys-with-encrypted-home-directory.html

Короче говоря. Вы помещаете свои ключи в зашифрованной версии Вашего пользователя ~/.ssh и символьная ссылка зашифрованная версия ~/.ssh к другому. Таким образом, это всегда там.

Для ленивых людей как я вот сценарий, чтобы сделать это для Вас. Просто выполните его как обычного пользователя. Никакой корневой доступ или необходимые полномочия и никакие изменения конфигурации сервера не требуются. Чистые настройки обычного пользователя.

#!/bin/bash
#
# Encrypted Home DIR SSH Key fix.
# Requires modification to sshd_config
#  AuthorizedKeys /etc/ssh/authorized_keys/%u/authorized_keys
# sudo mkdir /etc/ssh/authorized_keys -m 777
# for existing users run from home directory when login.
# for new users modify /etc/skel to include .bashrc to call script.
#
# Author: Benjamin Davis <bdavis@enetworkservices.net>

# Check if directory exists.
if [ ! -d "/etc/ssh/authorized_keys/$LOGNAME" ]
then
    # Make directory with restricted permissions.
    echo "Creating user ssh directory."
    mkdir /etc/ssh/authorized_keys/$LOGNAME -m 700
fi

# Check real users home .ssh folder
if [ -d "/home/$LOGNAME/.ssh" ]
then
    # Check if dir is symlink
    if [ ! -h /home/$LOGNAME/.ssh ]
    then
        echo "Moving configs."
        mv /home/$LOGNAME/.ssh/. /etc/ssh/authorized_keys/$LOGNAME/.
        rm -rf /home/$LOGNAME/.ssh/
        ln -s -T /etc/ssh/authorized_keys/$LOGNAME /home/$LOGNAME/.ssh
        clear
    fi
else
    # Does not exist so link it.
    if [[ $EUID -ne 0 ]]
    then
        echo "User ssh config folder does not exist. Creating."
        mkdir /home/$LOGNAME/.ssh -m 700
        ln -s -T /etc/ssh/authorized_keys/$LOGNAME /home/$LOGNAME/.ssh
    fi
fi
1
ответ дан 07.12.2019, 08:50

Теги

Похожие вопросы