Як додати файл PEM як приватний ключ SSH до "відомих хостів"


8

У мене є робочий стіл Ubuntu, і мені дали файл PEM ( mykey.pem), який є приватним ключем SSH для сервера Linux. Я намагаюся розібратися, де цей файл PEM потрібно розмістити локально на моїй машині, і як його можна налаштувати / додати до моїх "відомих хостів SSH".

Гугл по цій темі виявляє безліч відповідей / статей для створення ключів SSH, але не для додавання існуючого ключа до відомих хостів. Ідеї?


// , Хороше питання! Це повинно працювати: $ ssh-keygen -y -f mykey.pem >> ~ / .ssh / pooblasti_keys Забагато ІТ-відділів просто надсилає файл PEM без будь-яких інструкцій щодо того, як ним користуватися на місцевому рівні. Якщо комусь потрібно більше про це, я можу додати відповідь.
Натан Басанес

Відповіді:


5

Я не знаю про різні типи ключів SSH. Але ви б поклали відкритий ключ на цільовий комп'ютер, а не на ваш приватний ключ. Ваш приватний ключ залишається приватним.

І відкритий ключ вихідного комп’ютера повинен бути розміщений на комп'ютері-dest в ~/.ssh/authorized_keys цьому. Це можна зробити вручну або за допомогою ssh-keygenкоманди.

Я пропоную вам зробити кішку на відкритому ключі на початковому комп’ютері та передати кішку на авторизовані ключі на комп’ютері dest, і переконайтесь, що вигляд джерела схожий на той самий формат, що і у дозволених

Файл known_hosts - це те, до чого додається автоматично. Не потрібно редагувати це вручну. Ви можете підключитися навіть після видалення відомого файла_hosts.

EDIT-

Включити деякі коментарі у відповідь. Відкритий ключ походить від приватного ключа. Зазвичай приватний ключ залишається приватним, але ОП давали приватний ключ, це незвично, але це цікавий спосіб зробити це, оскільки це означає, що комп'ютер dest може вже мати свій відкритий ключ. Тож він міг увійти, не додаючи нічого до дозволених_кейсів комп'ютера dest. ssh -i завжди бере приватний ключ. Йому потрібно лише ssh -i path/to/privatekeyfile user@dest ОП використовує "openstack", деяку хмарну службу, і як пише сайт openstack, docs.openstack.org/user-guide/content/ssh-into-instan.html $ ssh -i MyKey.pem ubuntu@10.0.0.2Отже, незалежно від назви файлу приватного ключа є, і де б він не зберігався, ви вказуєте це під час виконанняssh -i


Дякую @barlop (+1) - якщо ви прочитаєте перше речення мого питання, ви побачите, що я констатую, що файл PEM - приватний ключ SSH, і що я намагаюся його правильно встановити на комп’ютер. Я не переживаю за сервер, про мене вже подбали. Отже, моє запитання: як встановити приватний ключ на свою машину Ubuntu? Це був ключ, який я не створив через ssh-keygen; це мені подало довірене джерело.
smeeb

1
@smeeb, чому хтось дає тобі свій приватний ключ? їх приватний ключ призначений бути приватним для них.
барлоп

Ще раз дякую @barlop (+1) - Але це не хтось, це OpenStack , IaaS, що генерує хмару. Це потужний проект з відкритим кодом з мільйонами людських годин та корпоративним забезпеченням. Перегляд 30 000 футів тут: щоб створити новий "екземпляр програми" на OpenStack Horizon, спочатку потрібно створити пару ключів SSH. OpenStack автоматично встановлює відкритий ключ у новому екземплярі. Ви повинні завантажити приватний ключ (PEM-файл) та встановити його локально, щоб ви могли SSH при бажанні.
smeeb

@smeeb Я не знаю так сильно про openstack, але ви можете зробити, наприклад, ssh -i ~/.ssh/id_rsa bodhi@ssh.server.com або як пише сайт openstack docs.openstack.org/user-guide/content/ssh-into-instan.html $ ssh -i MyKey.pem ubuntu@10.0.0.2 Отже, незалежно від назви приватного ключа файл є, і де б він не зберігався, ви вказуєте, що при виконанніssh -i
барлоп

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