2

Мой сервер работает под управлением Ubuntu-Server и на нем установлен OpenSSH-Server. Я настроил файл /etc /ssh /sshd_config так, чтобы он принимал и требовал ключи rsa, он ищет ключи в файле AuthorizedKeys ~ /.ssh /authorized_keys. В этом файле у меня есть два отдельных открытых ключа, один из которых создан с использованием замазки, которую я использую с WinSCP, а другой - из Secure Shell Client.

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

Любая идея о том, что я могу делать здесь не так? Я думаю, у меня неправильно установлен параметр AuthorizedKeys в файле /etc /ssh /sshd_config

1 ответ1

3

Итак, как я и предполагал: ваш $ HOME фактически находится в зашифрованном контейнере, который открывается только при входе в систему. Чтобы впустить вас в систему, sshd хочет получить открытый ключ, прежде чем он пропустит вас, и, таким образом, это какая-то проблема куриного яйца.

Один из вариантов решения этой проблемы - поместить файл .ssh/authorized_keys в другое место с помощью следующего изменения в /etc/ssh/sshd_config:

 AuthorizedKeysFile      /home/.ssh/%u

Итак, пользователь joe имеет свои открытые ключи в /home/.ssh/joe т.д. И т.д.

Еще одна идея, которую стоит попробовать - сделать что-то вроде этого:

$> login
<os unlocks encrypted /home/joe>
$> cp .ssh/authorized_keys /tmp/
$> logout
<os locks encrypted /home/joe again>
$> mkdir /home/joe/.ssh/
$> cp /tmp/authorized_keys /home/joe/.ssh/

Идея заключается в том , чтобы тянуть authorized_keys файл из зашифрованного контейнера (так же как и первая мысль) , а затем поместить этот файл в незашифрованном виде в нужном месте. Когда вы входите в систему, ОС затем монтирует ваш зашифрованный дом как некий «оверлей» поверх /home/joe , скрывая незашифрованные .ssh/authorized_keys .

Третья идея может включать некоторую стук портов: вы запускаете некоторый сетевой трафик на некоторые секретные порты с некоторыми секретными данными, которые затем запускают ОС, чтобы разблокировать ваш зашифрованный дом. После процедуры стука вы сможете войти в систему.

Общий недостаток / факторы, которые следует учитывать: эти идеи зависят от того, как вы зашифровали свой $ HOME. Если для шифрования требуется ваш пароль для расшифровки данных, вам нужно как-то его предоставить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .