Я создал экземпляр 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" myuser@ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com
Я получил сообщение об ошибке "Доступ запрещен (открытый ключ)"
Поэтому я отказался от этого пользователя и создал другого. На этот раз a создал файл «authorized_keys» с помощью nano вместо Vim, и это сработало.
Кто-нибудь испытал это?
Если что-то подобное произойдет, я бы рекомендовал проверить 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.
Видимо ты неправильно наклеил.
ssh-rsa
или с ssh-ed25519
?прежде чем вставлять что-либо в vim, вы должны использовать :set paste
, поскольку он отключает любые возможные активные макросы автозаполнения / автоотступа / ...
Другое дело, что вы написали mykey.pem
, которое является обычным расширением для файлов openssl, а не ssh-ключей. Вы уверены, что использовали id_rsa.pub
/ id_ed25519.pub
как ssh-pubkey?
myuser должен иметь доступ к .ssh и ключевому файлу. Проверьте, кому они принадлежат.