Ответ 1
Попробуйте выполнить следующие действия:
ssh-keygen -R 54.72.242.0
sudo chmod 600 ec2-key-pair.pem
а затем:
ssh -i ec2-key-pair.pem [email protected]
Я пытаюсь подключиться к моему экземпляру EC2 с SSH и Iḿ сходить с ума. Я прочитал это сообщение и пробовал все комбинации пользователей:
AWS ssh access "Разрешение отказа (публикация)"
Он все еще не работает для меня. Любая идея, что мне не хватает?
[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).
Попробуйте выполнить следующие действия:
ssh-keygen -R 54.72.242.0
sudo chmod 600 ec2-key-pair.pem
а затем:
ssh -i ec2-key-pair.pem [email protected]
Возможно, вы вошли в систему как неправильный пользователь. Если это экземпляр Ubuntu, команда будет следующей:
ssh -v -i ec2-key-pair.pem [email protected]
Хотя это не относится к 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
Совершенно точная и краткая: для владельца: группа была установлена daemon:daemon
, когда она должна была быть www-data:www-data
(это было на машине Ubuntu, на которой в прошлом был установлен другой веб-сервер).
У меня была аналогичная проблема: "key_parse_private2: missing begin marker" при использовании имени пользователя "ec2-user", но он был исправлен, когда я перешел на ubuntu как пользователь.
Еще одна вещь, которую нужно проверить: PermitRootLogin
и AllowUsers
в /etc/ssh/sshd_config
.
Этот debug1: key_parse_private2: missing begin marker
появляется даже после успешной авторизации ключа, если ваш доступ к пользователю ограничен.
Да, действительно довольно вводящее в заблуждение сообщение. В моем случае я использовал неправильный ключ, например.
Нам нужно было удалить пару ключей и создать новую, за исключением того, что наш экземпляр сохранил старый (потому что вы не можете сделать это так просто).
Сообщение об ошибке было таким же, поэтому стоит проверить имя ключа в вашей панели aws экземпляра, соответствующей паре ключей, которую вы используете в ключевом паритете.
Вход для меня как "admin" работал у меня. На основе вашего типа экземпляра пользователь входа в систему изменяется. ec2-user или ubuntu или в моем случае admin. ssh -v -i./my_key_file.pem [email protected]
Также убедитесь, что разрешение для файла pem равно 600 chmod 600./my_key_file.pem
Один простой способ получить эту ошибку - поврежденный файл .pem.
Например, если строка last отсутствует, вы получаете "missing begin marker".
Убедитесь, что .pem заканчивается:
----- END RSA ЧАСТНЫЙ КЛЮЧ -----