AWS ssh access "Разрешение отклонено (публикация)"

Как подключиться к экземпляру AWS через ssh?

У меня есть:

  • Подписано на AWS;
  • Создал открытый ключ и сертификат на веб-сайте AWS и сохранил их на диске;
  • Пошел на консоль и создал переменные среды:

    $ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
    $ export EC2_CERT=/home/default/aws/cert-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
    $ export EC2_PRIVATE_KEY=/home/default/aws/pk-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
    
  • Сообщал AWS API использовать эту пару ключей и сохранил ключевую пару для файла:

    $ ec2-add-keypair ec2-keypair > ec2-keypair.pem
    
  • Создал экземпляр AWS Ubuntu 9, используя эту пару ключей:

    $ ec2-run-instances ami-ed46a784 -k ec2-keypair
    
  • Попытка установить соединение ssh с экземпляром:

    $ ssh -v -i ec2-keypair.pem [email protected]
    OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: Applying options for *
    debug1: Connecting to ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190] port 22.
    debug1: Connection established.
    debug1: identity file ec2-keypair.pem type -1
    debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1
    debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH*
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-cbc hmac-md5 none
    debug1: kex: client->server aes128-cbc hmac-md5 none
    debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
    debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
    debug1: Host 'ec2-174-129-185-190.compute-1.amazonaws.com' is known and matches the RSA host key.
    debug1: Found key in /home/default/.ssh/known_hosts:11
    debug1: ssh_rsa_verify: signature correct
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    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-keypair.pem
    debug1: read PEM private key done: type RSA
    debug1: Authentications that can continue: publickey
    debug1: No more authentication methods to try.
    Permission denied (publickey).
    

    В чем может быть проблема и как заставить ее работать?

Ответ 1

Для экземпляров Ubuntu:

chmod 600 ec2-keypair.pem
ssh -v -i ec2-keypair.pem [email protected]

В других случаях вам может понадобиться ec2-user вместо ubuntu.

Большинство изображений EC2 Linux, которые я использовал, имеют только пользователь root, созданный по умолчанию.

Смотрите также: http://www.youtube.com/watch?v=WBro0TEAd7g

Ответ 2

Теперь это:

ssh -v -i ec2-keypair.pem [email protected][yourdnsaddress]

Ответ 3

Канонические релизы используют пользователя 'ubuntu' по умолчанию для всех, кто приземляется здесь с изображением ubuntu, которое появляется с той же проблемой.

Ответ 4

Если вы используете образ Bitnami, войдите в систему как "битнами".

Кажется очевидным, но что-то я пропустил.

Ответ 5

Для моих изображений ubuntu это на самом деле пользователь ubuntu и НЕ ec2-user;)

Ответ 7

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

Ответ 8

Я тоже сталкивался с этим - оказывается, я использовал созданный сообществом AMI, и имя пользователя по умолчанию было niehter root, равно как и не было ect-user или ubuntu. На самом деле, я понятия не имел, что это было - до тех пор, пока я не попробовал " root", и сервер любезно попросил меня войти в систему как xxx, где xxx это то, что он вам говорит.

-cheers!

Ответ 9

использовать...

# chmod 400 ec2-keypair.pem

не используйте разрешение 600, иначе вы можете случайно перезаписать свой ключ.

Ответ 10

это сработало для меня:

ssh-keygen -R <server_IP>

удалить старые ключи, хранящиеся на рабочей станции также работает вместо

а затем снова выполнив тот же ssh:

ssh -v -i <your_pem_file> [email protected]<server_IP>

на экземплярах ubuntu имя пользователя: ubuntu на Amazon Linux AMI имя пользователя: ec2-user

Мне не нужно было повторно создавать экземпляр с изображения.

Ответ 11

Для экземпляров Debian EC2 пользователь admin.

Ответ 12

Вам нужен секретный ключ на локальной машине

Вам нужно знать IP-адрес или DNS-имя удаленного компьютера или сервера, вы можете получить его с консоли AWS

Если вы являетесь пользователем linux

  • Убедитесь, что разрешения для закрытого ключа - 600 (chmod 600 <path to private key file>)
  • Подключитесь к вашей машине с помощью ssh (ssh -i <path to private key file> <user>@<IP address or DNS name of remote server>)

Если вы пользователь Windows

  • Используйте PuTTy для создания сеанса ssh (http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.66-installer.exe)
  • Если ваш файл закрытого ключа находится в формате .pem, преобразуйте его в .ppk, используя puttygen
  • Запустите PuTTy, задайте вам ppk файл, IP-адрес или DNS-имя удаленного сервера и запустите сеанс ssh

Ответ 13

Если вы используете AWS-образ из Bitnami. Имя пользователя было бы битнами. Ура!

см. мою отладку и посмотрите на последнюю:

*

ssh -v -i awsliferaysrta.pem.txt [email protected]***
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to 54.254.250.*** [54.254.250.***] port 22.
debug1: Connection established.
debug1: identity file awsliferaysrta.pem.txt type -1
debug1: identity file awsliferaysrta.pem.txt-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 05:5c:78:45:c9:39:3a:84:fe:f8:19:5d:31:48:aa:5f
debug1: Host '54.254.250.***' is known and matches the RSA host key.
debug1: Found key in /Users/macbookpro/.ssh/known_hosts:2
debug1: ssh_rsa_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: awsliferaysrta.pem.txt
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to 54.254.250.*** ([54.254.250.***]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Remote: Port forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Forced command.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Please login as the user "bitnami" rather than the user "root".

*

Ответ 14

В моем случае (Mac OS X) проблема заключалась в типе разрыва файла. Попробуйте следующее:

1.- Откройте файл .pem с помощью TextWrangler

2.- В нижней части приложения проверьте, является ли тип прерывания "Windows (CRLF)".

Ответ 15

Его ec2-пользователь для Amazon Linux AMI и ubuntu для изображений Ubuntu. Кроме того, RHEL 6.4 и более поздние пользователи ec2 RHEL 6.3 и более ранние корни Fedora ec2-пользователь Корень Centos

Ответ 16

Просто добавьте этот список. У меня были проблемы с этим утром, когда новый пользователь просто добавил экземпляр AWS EC2. Чтобы прервать погоню, проблема была selinux (которая была в режиме принудительного), а также тот факт, что мой домашний домашний каталог пользователя был включен в новый том EBS. Как-то я думаю, что selinux не нравится этот другой том. Потребовал мне время, чтобы разобраться, поскольку я просматривал все другие обычные проблемы ssh (/etc/ssh/sshd_config было нормально, конечно, не разрешался пароль, права были правильными и т.д.)

Исправление?

Пока (пока я не пойму, как разрешить пользователю ssh на другой том или каким-то образом сделать этот том добросовестной домашней точкой):

sudo perl -pi -e 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
sudo setenforce 0

Что это. Теперь мой новый пользователь может войти в систему, используя свой собственный ключ id_rsa.

Ответ 17

Была та же проблема. Permission denied (publickey) при попытке входа в систему с помощью "ec2-user" или с "root".

Скомпоновал номер AMI машинного изображения, и на нем была зарегистрирована информация для входа в SSH на странице вики Debian.

Надеюсь, что это поможет.

Ответ 18

Если вы используете EBS, вы также можете попытаться установить том EBS на запущенный экземпляр. Затем установите его на этом запущенном экземпляре и посмотрите, что происходит в /home. Вы можете видеть такие вещи, как пользователь ubuntu или ec2-user? или имеет правильные открытые ключи в ~/.ssh/authorized_keys

Ответ 19

Разрешение для ec2-keypair.pem должно быть 400

chmod 400 ec2-keypair.pem

Ответ 20

Существует два шага для подключения:

Chmod 400 на вашем личном ключе, так как другие не могут получить доступ к вашему ключу:

chmod 400 toto.pem

Чтобы подключиться к вашему экземпляру в SSH, вам необходимо знать общедоступный IP-адрес вашего экземпляра:

ssh -i toto.pem [email protected]

Надеюсь, что это поможет!