Назад | Перейти на главную страницу

как подключиться к EC2 по SSH без явного использования ключа pem?

У меня Windows в качестве основной ОС. Используя проигрыватель VMware, я настраиваю сервер Ubuntu 12.4 в качестве гостевой машины. На сервере Ubuntu есть пользователь "ubuntu".

Я создал новый экземпляр EC2 + ключ настройки pem. На машине с Windows, когда я использую putty + pem key - я могу ssh.

Я добавил ключ pem на свой сервер VMware Ubuntu (/home/ubuntu/.ssh/). Кроме того, я установил следующие разрешения: chmod 700 /home/ubuntu/.ssh chmod 600 /home/ubuntu/.ssh/*

Через сервер Ubuntu - я безуспешно пытался подключиться к экземпляру ec2 по SSH: ssh ubuntu@EC2_IP Permission denied (publickey) . Если я явно использую ключ pem, он работает: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - Обратите внимание, что я должен использовать прямой путь к ключу, иначе я получу Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

Пожалуйста, порекомендуйте. Спасибо!

Добавить pem-ключ EC2 в SSH

ssh-add ~ / .ssh / KEY_PAIR_NAME.pem

По умолчанию клиент SSH будет искать ключи с именем id_rsa, id_dsa и id_ecdsa в ~/.ssh/. Если ваш ключ не назван так, вам нужно либо указать его в командной строке с помощью -i как вы это делали, или укажите это в конфигурации клиента.

Вы можете добавить что-то подобное к ~/.ssh/config для автоматического выбора этого ключа при подключении к EC2 по SSH:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa

Как вы называете свой закрытый ключ? Он должен иметь имя файла id_rsa по умолчанию (переименуйте файл pem в /home/ubuntu/.ssh/id_rsa)

Ты можешь использовать ssh-agent и ssh-add чтобы не указывать закрытый ключ явно.

Вы можете поместить команды в свой .profile или .bashrc поэтому они запускаются каждый раз, когда вы входите в систему. Вы можете найти пример сценария запуска в нижней части эта почта.

Клиент ssh ищет identify file на основе конфигурации, установленной в /etc/ssh/ssh_config. Таким образом, вы можете указать здесь файл идентификации и помните, что в файле конфигурации клиента ssh может быть несколько файлов идентификации. На странице руководства ssh -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

Например, для ключа RSA расположение по умолчанию ~ / .ssh / id_rsa. Как предложил Андрей Михальцов, вы можете поместить свой закрытый ключ в / home / ubuntu / ssh / id_rsa и иметь возможность подключаться, не указывая его в командной строке. Если это имя файла уже существует и содержит другой закрытый ключ, вы все равно можете настроить файл конфигурации клиента ssh в IdentityFile параметр.