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


21

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

Я створив новий екземпляр EC2 + ключ встановлення. Коли я використовую машину Windows, я використовую клавішу + ключ pem - я можу ssh.

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

Через сервер Ubuntu - Я намагався SSH до примірника ec2 без успіху: 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).

Порадьте, будь ласка. Спасибі!

Відповіді:


18

За замовчуванням клієнт SSH буде шукати ключі по імені id_rsa, id_dsaі id_ecdsaв ~/.ssh/. Якщо ваш ключ не названий таким, вам потрібно або вказати його в командному рядку, -iяк ви робили, або вказати його в конфігурації клієнта.

Ви можете додати щось подібне, ~/.ssh/configщоб автоматично вибрати цю клавішу під час SSHing до EC2:

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


2

Як ви називаєте свій приватний ключ? Він повинен мати ім'я файлу id_rsa за замовчуванням (перейменуйте pem-файл на /home/ubuntu/.ssh/id_rsa)


він називався eldad.pem (за замовчуванням ім'я AWS). Я перейменував його на id_rsa, і воно спрацювало. чи є спосіб зберегти його в поточному імені та все ж використовувати його?
користувач798562

Так, Даніель вже писав про це у своїй відповіді :)
Андрій Михальцов

1

Ви можете використовувати ssh-agentта ssh-addуникати необхідності чітко вказати приватний ключ.

Ви можете розмістити команди у вашому .profileабо .bashrcтаким чином вони виконуються щоразу, коли ви входите в систему. Ви можете знайти приклад сценарію запуску внизу цієї публікації .


Я це зробив, але коли я перезавантажуюсь - мені потрібно це робити заново. Будь-який спосіб цього уникнути?
користувач798562

Відредагував мою відповідь, щоб включити її.
Девід Левеск

0

Ssh-клієнт шукає на identify fileоснові конфігурації, встановленої в /etc/ssh/ssh_config. Таким чином, ви можете вказати там файл ідентичності, і пам’ятайте, що у файлі конфігурації ssh-клієнта можна вказати кілька файлів ідентичності. Із сторінки ssh man -

    -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параметром.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.