it-roy-ru.com

Ошибка соединения AWS SSH: отказано в доступе (publickey)

Я пытаюсь подключиться к своему экземпляру EC2 по SSH, и я схожу с ума. Я прочитал этот пост и перепробовал все комбинации пользователей:

Проблема доступа AWS ssh «Отказано в доступе (публичный ключ)»

Это все еще не работает для меня. Есть идеи, что мне не хватает?

  [email protected]:~/keys$ ssh -v -i ec2-key-pair.pem [email protected]
OpenSSH_6.6, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ec2-54-72-242-0.eu-west-1.compute.amazonaws.com [54.72.242.0] port 22.
debug1: Connection established.
debug1: identity file ec2-key-pair.pem type -1
debug1: identity file ec2-key-pair.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6p1 Ubuntu-2ubuntu1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2
debug1: match: OpenSSH_6.2 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ECDSA e4:06:ee:a5:a5:d2:97:5f:0f:b7:06:5e:f2:b3:da:26
debug1: Host 'ec2-54-72-242-0.eu-west-1.compute.amazonaws.com' is known and matches the ECDSA Host key.
debug1: Found key in /home/roberto/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-key-pair.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

UPDATE: 

Согласно предложениям @aldanux:

    [email protected]:~/keys$ ssh-keygen -R 54.72.242.0
# Host 54.72.242.0 found: line 4 type ECDSA
/home/roberto/.ssh/known_hosts updated.
Original contents retained as /home/roberto/.ssh/known_hosts.old
[email protected]:~/keys$ ssh -i ec2-key-pair.pem [email protected]
Warning: Permanently added the ECDSA Host key for IP address '54.72.242.0' to the list of known hosts.
Permission denied (publickey).
22
Rober

Попробуйте это шаги:

ssh-keygen -R 54.72.242.0

Sudo chmod 600 ec2-key-pair.pem

а потом:

ssh -i ec2-key-pair.pem [email protected]c2-54-72-242-0.eu-west-1.compute.amazonaws.com
3
Black Sheep

Вы, вероятно, входите в систему как неправильный пользователь. Если это экземпляр Ubuntu, команда будет выглядеть так:

ssh -v -i ec2-key-pair.pem [email protected]
34
Rico

Это бесполезное сообщение об ошибке не относится к AWS

debug1: key_parse_private2: missing begin marker

будет происходить в нескольких непонятных сценариях, например, когда владение (или разрешения) для домашнего каталога пользователя SSH неверно на удаленной машине.

Лучший способ устранить неполадки в этом и других неясных сообщениях - это просмотреть журнал авторизации на удаленном компьютере, если у вас есть доступ, поскольку он обычно определяет проблему. В системах Debian и Ubuntu это легче всего сделать с помощью tail (при необходимости используйте Sudo):

tail -f -n 80 /var/log/auth.log

В моем конкретном случае я нашел

Authentication refused: bad ownership or modes for directory /var/www

Совершенно точно и кратко: для owner: group было задано значение daemon:daemon, когда оно должно было быть www-data:www-data (это было на машине с Ubuntu, на которой в прошлом должен был быть установлен какой-либо другой веб-сервер).

16
Ben Johnson

У меня была похожая проблема «key_parse_private2: отсутствует маркер начала» при использовании имени пользователя «ec2-user», но она была исправлена, когда я перешел на ubuntu в качестве пользователя.

5
changeagent

Еще одна вещь, которую нужно проверить - это PermitRootLogin и AllowUsers в /etc/ssh/sshd_config.

Этот debug1: key_parse_private2: missing begin marker появляется даже после успешной авторизации ключа, если доступ вашего пользователя ограничен.

1
FelikZ

Да, действительно довольно вводящее в заблуждение сообщение. В моем случае я использовал неправильный ключ, например.

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

Сообщение об ошибке было таким же, поэтому стоит проверить, чтобы имя ключа на вашей панели экземпляра aws совпадало с парой ключей, которую вы используете в key paris.

0
Bartosz Dabrowski

Вход в систему как "админ" работал для меня. В зависимости от типа вашего экземпляра логин пользователя меняется. ec2-user или ubuntu или в моем случае admin . ssh -v -i ./my_key_file.pem [email protected]

Также убедитесь, что разрешение для файла pem составляет 600 Chmod 600 ./my_key_file.pem

0
Anish

Одним из простых способов получить эту ошибку является поврежденный файл .pem.

Например, если строка last отсутствует, вы получите «отсутствующий маркер начала».

Убедитесь, что .pem заканчивается:

----- КОНЕЦ RSA ЧАСТНЫЙ КЛЮЧ -----

0
TimT