Я недавно настроил новый сервер с Ubuntu кармические 9.10, и когда я создал свой корневой каталог, я принял решение сделать, это зашифровало. Теперь, после загрузки моего authorized_keys файла в ~/.ssh, это не распознано, потому что мой корневой каталог не дешифрован, пока я не вхожу в систему. Существует ли способ заставить ключи SSH работать с зашифрованными корневыми каталогами в соответствии с Ubuntu?
Измените эту строку в своем sshd_config файле:
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
И затем переместите свой authorized_keys файл в/etc/ssh/your-username/authorized_keys
Это сообщение документы другой способ решить это.
Я просто провел некоторое время, бездельничая с этим, и ответ - то, что это в значительной степени существенно невозможно. Возможно настроить аутентифицируемые в открытом ключе логины без пароля через ssh, таким образом, Вы не должны вводить в своем пароле для входа в систему, но это не получает Вас нигде, потому что Ваш корневой каталог все еще шифруется.
Очевидный факт - то, что Ваш зашифрованный корневой каталог шифруется с паролем*, таким образом, единственный способ дешифровать его с тем паролем.
И если Вы думаете, что в теории должно быть возможно использовать Ваш ssh ключ для дешифрования пароля монтирования после входа в систему, который не будет работать, потому что закрытый ключ никогда не отправляется на сервер вообще.
Так в основном, если Вы хотите шифрование, необходимо использовать пароли. Зашифрованные корневые каталоги являются несовместимыми с логинами цифрового отпечатка по той же причине.
*Я знаю, что это более сложно, чем единый пароль, но давайте сохраним это простым на данный момент.
Можно использовать больше безопасного открытого ключа, чтобы войти, и затем выполнить следующее для монтирования каталога после ввода в пароле:
ecryptfs-mount-private
Читайте ~/README.txt
файл после входа на пути SSH, Вы найдете, что у Вас нет своих файлов, потому что зашифрованный каталог не смонтирован.
Вы не должны использовать открытые ключи без пароля для входа в систему так или иначе. Взгляд на ssh-агент для лучшего пути.
Если Вам не нравится изменять установку по умолчанию (я не делаю, мне нравится, когда мои файлы, где я ожидаю, что они будут), затем, Вы могли бы хотеть смотреть на мое сообщение о том, как сделать это:
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