1

У меня есть сервер под управлением Ubuntu. Я установил openssh-сервер и хотел использовать ключ ssh для входа в систему. Все отлично работает, кроме одного. На сайте сообщества Ubuntu написано:«Это значительно повышает вашу безопасность, но делает невозможным подключение к вашему компьютеру с компьютера друга без предварительного одобрения ПК [...]» (https://help.ubuntu. com/community/SSH/OpenSSH/ Настройка).

Я создал пару ключей на моем сервере / на стороне сервера. Затем я добавил открытый ключ для authorized_keys, передал закрытый ключ на мой клиентский компьютер и удалил закрытый ключ с сервера.

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

Это поведение правильно? Потому что вышеприведенная цитата говорит, что я должен одобрить каждого нового клиента, но на практике у меня нет.

2 ответа2

4

В общем, на клиенте, который вы хотите использовать, должна быть сгенерирована пара закрытого / открытого ключа, и у КАЖДОГО клиента должна быть своя собственная пара секретного / открытого ключа. Закрытый ключ предназначен ТОЛЬКО для клиента, и открытый ключ может быть передан на серверы, к которым вы хотите получить доступ.

Обычно сервер должен хранить только открытые ключи, и каждый открытый ключ говорит: «Клиент с соответствующим закрытым ключом может получить доступ к этой машине».

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

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

1

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

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

Чтобы отключить аутентификацию по паролю, найдите следующую строку в файле sshd_config:

#PasswordAuthentication yes

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

ПарольАутентификация нет

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