Доступ по SSH запрещен при создании файла «authorized_keys» с помощью Vim

Доступ по SSH запрещен при создании файла «authorized_keys» с помощью Vim

Я создал экземпляр ec2 с Ubuntu 16.04 AMI. Я создал пользователя sudo для этого AMI с помощью:

sudo adduser myuser
sudo usermod -aG sudo myuser

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

mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Я скопировал и вставил свой открытый ключ в 'authorized_keys'. Затем я вышел из ec2 и проверил свое соединение с помощью:

cd ~/.ssh
ssh -i "mypem.pem" [email protected]

Я получил сообщение об ошибке «Доступ запрещен (открытый ключ)».

Поэтому я удалил пользователя и создал другого пользователя. На этот раз я создал файл 'authorized_keys' с помощью nano вместо Vim, и это сработало.

Кто-нибудь сталкивался с этим?

решение1

Вероятно, вы неправильно вставили.

  • Начинается с ssh-rsaили с ssh-ed25519?
  • Есть ли пробел перед ним (НЕ должно быть)?
  • Сохраняется ли верхний/нижний регистр?
  • есть ли пробел перед комментарием в конце строки?

Прежде чем вставлять что-либо в vim, следует использовать :set paste, так как это отключает любые возможные активные макросы автодополнения/автоотступа/...

Другое дело, что вы написали mykey.pem, что является обычным расширением для файлов openssl, а не ssh-keys. Вы уверены, что использовали id_rsa.pub/ id_ed25519.pubкак ssh-pubkey?

решение2

Если что-то подобное происходит, я бы рекомендовал проверить fileencryption, fileformatи bombв ViM. Сравните оба файла, тот, который вы редактировали в nano, и тот, который вы редактировали в vim. Откройте их в vim и проверьте это:

:set bomb? Это метка порядка байтов. Обычно устанавливается при редактировании файла UTF-8 с помощью notepad.exe в Windows. У меня часто возникали с этим проблемы.

:set ff? Формат файла dosили unix. dos имеет другие окончания строк, чем unix.

:set fenc? Кодировка файла: возможно, один редактор изменит кодировку на latin1 вместо UTF-8.

решение3

myuser должен иметь доступ к .ssh и keyfile. Проверьте, кто ими владеет.

Связанный контент