EC2: декілька ключів ssh для екземпляра?


12

Чи можливо створити більше одного приватного ключа для SSH в екземплярі EC2? Яка загальна найкраща практика для цього? У нас є кілька користувачів, яким потрібно SSH на сервери, а розподіл одного ключа просто не працює. Це не дозволяє нам відмовити користувачів від можливості SSH на сервері, якщо ми не змінимо ключ і не поширимо повторно.



Коли ви займаєтесь управлінням ключами SSH для команди, можливо, найкраще подивитися на спеціалізований інструмент на зразок Userify або SSH UKM (відмова від відповідальності: я працюю на Userify).
Джеймісон Беккер

Відповіді:


5

Абсолютно; ви просто помістіть усі відповідні відкриті ключі до зображення, і ви маєте право йти. Я вважаю за краще використовувати систему управління конфігурацією для управління ключами SSH; таким чином, досить тривіально відкликати доступ користувача навіть у запущених системах. Існує також набагато більше ... скажімо, "образних" ... способів вирішення цього питання, таких як зберігання всіх ваших SSH-ключів у LDAP, які централізують SSH-ключі, як і будь-які інші дані.


2
Коли ви захочете зберігати SSH ключі в LDAP, саме час дізнатися про Kerberos.
84104

1
Я розгорнув Керберос; особисто я думаю, що це рішення в пошуках проблеми, і досить прискіпливе і дратівливе рішення в цьому.
жіноча

2
@Ash: Питання стосуються питань, а не коментарів.
жіноча

1
Я збирався ігнорувати вищезазначений коментар - але для кожного нового сайту я відчув, що я маю дати зрозуміти, що якщо у вас є коментар, пов’язаний із виконанням даної відповіді, роз'ясненнями або непорозуміннями, це має бути зрозуміло. в коментарях, щоб ОП могла внести зміни до відповіді, щоб з’ясувати будь-яку плутанину, яка може статися.
Mazatec

2
Ні, вам слід задавати уточнюючі запитання в коментарях, якщо відповідь не стосується первісно заданого питання. Якщо ви хочете задати нове запитання на основі змісту відповіді, вам слід скористатися великою кнопкою «Задати питання» у верхньому правому куті сторінки, щоб задати нове запитання. Це веб-сайт із питань питань, а не форум для обговорень.
жіноча

6

Ви також можете використовувати стандартні механізми ssh. Найкращим підходом буде, якщо користувач працює на своїй машині ssh-keygenдля створення своєї ключової пари. Потім вони надсилають вам ~/.ssh/id_rsa.pub(або id_dsa.pub, залежно від обраного алгоритму), і ви додаєте його вміст до .ssh/authorized_keysвузла призначення в домашній каталог облікового запису користувача, до якого вони повинні мати доступ. У файлі може бути більше одного ключа. По одному на рядок. І це все! Той самий відкритий ключ (id_rsa.pub) можна використовувати на будь-якій кількості хостів - він завжди визначатиме користувача.

Ви також можете це зробити навпаки - запустити ssh-keygen і додати ~ / .ssh / id_rsa (або id_dsa) користувачеві. І користувач зберігає файл у ~ / .ssh / id_rsa. Просто потрібно пам'ятати, щоб змінити дозволи на 600 (-rw -------) цього файлу, інакше ssh не прийме його. Це, очевидно, менш безпечно, оскільки приватний ключ, можливо, поширюється по електронній пошті.

Це також можна зробити в PuTTY за допомогою PuTTYgen.


1

Більш простий спосіб, як показано нижче.

Для користувачів Linux / Mac:

  1. Для створення відкритих та приватних ключів використовуйте таку команду: $ ssh-keygen -t rsa -b 4096

  2. Завантажте відкритий ключ у папку у відрі S3. Наприклад: S3> MyBucket> Keypair

  3. Збережіть і захистіть свій приватний ключ.

Для користувачів Windows:

  1. Використовуйте puttygen для генерації ключів.
  2. Дотримуйтесь DigitalOcean, щоб створити SSH ключі.
  3. Завантажте відкритий ключ на S3> MyBucket> Keypair
  4. Збережіть і захистіть свій приватний ключ.

Наступні кроки важливі під час запуску будь-якого Linux AMI.

  1. Переконайтесь, що роль IAM виконує роль AmazonS3FullAccess. Це дозволяє екземпляру взяти на себе роль для доступу до відра S3. Це потрібно, щоб прочитати відкриті ключі від S3 та скопіювати їх у профіль користувача

  2. Додайте наступний код у розділ "Дані користувачів" у розділі Налаштувати деталі екземпляра> Додаткові відомості (як текст):

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

Ця установка створює User1 та User2 та додає їх до користувачів sudo . Команда aws s3 cp копіює відкриті ключі користувачів із папки S3 у свою .ssh/authorized_keys path. Останній розділ - це запускати команди як адміністратор без необхідності паролів.

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

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