Кажется, как будто подобные вопросы уже задавались ранее, но проблема, которая у меня возникла, не была затронута или дана как часть ответов на другие вопросы. Так...
Я использую экземпляр Amazon EC2, на котором работает Ubuntu, и я уже выяснил, как получить SSH-доступ с помощью PuTTY с помощью входа в систему "ubuntu". Я решил, что могу просто сделать несколько useradds, и в каждой из домашних папок других пользователей добавить «.ssh/authorized_keys», как это было в домашней папке "ubuntu", а затем SSH при использовании других имен пользователей (но тот же закрытый ключ) будет работать без сбоев - этого не произошло (я получил сообщение "Сервер отклонил наш ключ").
Кажется, есть кое-что, что я не знаю о том, как работает парное соединение ключей SSH ... есть идеи?
Краткое резюме:
- SSH-доступ с PuTTY, используя "ubuntu" в качестве имени пользователя - работает нормально.
- Создание других пользователей, копирование «.ssh/authorized_keys» из домашней папки "ubuntu" в другие домашние папки пользователя и SSH с тем же закрытым ключом (вход в систему с другим именем пользователя) - не работает. Получение сообщения "Сервер отклонил наш ключ".
ОБНОВЛЕНИЕ: Я отредактировал файл /etc /ssh /sshd_config, чтобы раскомментировать строку:
AuthorizedKeysFile %h/.ssh/authorized_keys
(который я не понял, был прокомментирован по умолчанию), но все равно не повезло. Просто подумал, что упомяну это, если это будет предложение ...
ОБНОВЛЕНИЕ 2-ВАЖНО: Благодаря ответу Николая, я понял, что пропустил права доступа к файлу. Хотя разрешения были не совсем проблемой (я думаю), оказывается, что когда я использовал sudo для копирования «.ssh/authorized_keys» в другие добавленные пользовательские папки, владельцем вновь созданной папки и файла был фактически root. Похоже, теперь возникает вопрос - как я могу изменить владельца папки / файла (поскольку пользователь без полномочий root, скорее всего, не сможет проверить ключ, принадлежащий пользователю root)? Я сделаю поиск, чтобы увидеть, если это придет с ответом ...
UPDATE3-ВАЖНО: Я изменил разрешение для '.ssh' и 'authorized_keys', а также для владельца и группы с root на otheruser, но при использовании имени пользователя otheruser при попытке SSH я по-прежнему получаю сообщение "Сервер отклонен наш ключ "сообщение. Извините, я преждевременно добавил раздел с ответами ... Предоставленный ответ выглядел (и все еще кажется) как правильный ответ, логически говоря, поэтому я сказал, что ответ получен до того, как я проверил ...
UPDATE4-ВАЖНО: ответ Николая действительно правильный (чего я и не говорил в UPDATE3). Моя проблема (после того, как я последовал ответу Николая) на самом деле не была связана с какими-либо оговорками SSH. Когда я создал учетную запись другого пользователя, я случайно указал оболочку как /bin/bash/
вместо /bin/bash
(обратите внимание на дополнительную /). Я натолкнулся на это, потому что вся работа, которую я делал, была из учетной записи "ubuntu", и после разочарования я попытался просто войти в otheruser после SSHing с ubuntu - что вернуло ошибку "Невозможно выполнить /bin /bash /: не каталог». После изменения оболочки с помощью chsh -s /bin/bash otheruser
, я смог войти в otheruser из ubuntu, но что более интересно, это позволило мне войти в SSH с использованием otheruser в качестве пользователя без получения сообщения "Сервер отклонил наш ключ". Итак ... невозможность создания экземпляра оболочки для использования каким-либо образом возвращалась как сообщение об отказе ключа. Есть ли где-то, на что мне стоит обратить внимание ...? В любом случае, еще раз спасибо Николаю.
ОТВЕТ: Ответ Николая охватывает то, что необходимо сделать в этой ситуации, включая использование команды chown
для изменения владельца папки / файла, как указано в приведенной ссылке под его ответом. (Я также использовал команду chgrp
как группа также была root)
Вот шаги, которые я использовал (возможно, вам придется вводить эти команды с помощью sudo
):
- chmod go-w другой пользователь другой пользователь /.ssh
- chmod 600 otheruser /.ssh /authorized_keys
- chown 'otheruser' otheruser /.ssh
- chown 'otheruser' otheruser /.ssh /authorized_keys
- chgrp «другой пользователь» другой пользователь /.ssh
- chgrp «другой пользователь» другой пользователь /.ssh /авторизованный_ключей
ПРИМЕЧАНИЕ. Две последние команды предназначены для изменения группы, с которой связаны папка «.ssh/» и файл авторизованные ключи. Возможно, вы хотите, чтобы они были чем-то другим, но я хотел, чтобы они соответствовали другим файлам / папкам в домашней папке этого пользователя.