Как дать временный доступ по SSH с использованием центра сертификации?

Я пытаюсь работать над предоставлением временного доступа по SSH, используя центр сертификации на экземпляре aws EC2, но не смог сделать это должным образом. Не могли бы вы дать рекомендации, как этого добиться? Процесс, упомянутый ниже:

Step 1: Generate CA certificate on user's machine (currently doing for testing) : ssh-keygen -f ssh_ca

Step 2: Generate user's ssh keys using (on users machine): ssh-keygen
-f user_ssh_key

Step 3: Generate CA approved public key using user's public key: ssh-keygen -s ssh_ca -I host_name -h -n host_name -V +1d user_ssh_key.pub , this gives user_ssh_key-cert.pub (Public key which is signed)

Step 4: Copied ssh_ca.pub (CA pub key) and user_ssh_key ,user_ssh_key-cert.pub (user's pub and private key) on server where i have to do ssh.

Step 5: Do sudo su, go to file: vim /etc/ssh/sshd_config, Add CA pub key using : TrustedUserCAKeys /etc/ssh/ssh_ca.pub, add host key using HostCertificate /etc/ssh/user_ssh_key-cert.pub and added private key using : HostKey /etc/ssh/user_ssh_key

Step 6: Do /etc/init.d/sshd restart

Step 7: Open file /etc/ssh/ssh_known_hosts, add @cert-authority * (Content of ssh_ca.pub, without any change)

When i try to do ssh using : ssh host_name@IP_ADDRESS

Getting this error during ssh which seems to be a issue :

debug1: Found CA key in /etc/ssh/ssh_known_hosts:1

key_cert_check_authority: invalid certificate

Certificate invalid: not a host certificate

debug1: No matching CA found. Retry with plain key

Кто-нибудь может помочь в этом процессе, кажется, что-то пошло не так, что я не могу понять?

В настоящее время у меня нет имени DNS, но есть IP-адрес, который я хочу подключиться к.

Заранее спасибо

3
задан 29 January 2018 в 21:16
1 ответ

Я рассмотрю все шаги, необходимые для предоставления временного доступа ssh:

1. Создать пару ключей CA пользователя SSH

ssh-keygen -f <имя-пары-ключей> -b 4096 Это создаст закрытый ключ, который будет использоваться для подписи открытых ключей пользователя, и открытый ключ, который будет размещен и настроен как ключ доверенного центра сертификации на стороне сервера. Закрытый ключ должен храниться в безопасном месте и защищен надежной парольной фразой.

2. Настройка ключа SSH Trust CA на сервере

a. Скопируйте открытый ключ CA в каталог / etc / ssh / и убедитесь, что у него есть надлежащие права собственности (пользователь root, root group) и разрешения (0600, без ACL), например:

-rw-- ----- 1 root root 404 29 января 08:05 users_ca.pub

б. Добавьте запись в / etc / ssh / sshd_config , чтобы разрешить использование CA

  # Разрешить доступ с подписанных ключей
  TrustedUserCAKeys /etc/ssh/users_ca.pub
 

c. Проверьте конфигурацию SSH и, если ошибок нет, перезапустите демон

sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config
sudo service ssh reload

3. Подписывающий ключ пользователя

a. Получите закрытый ключ CA, который будет использоваться для подписи открытого ключа пользователя

b. Получить открытый ключ пользователя

c. Подпишите открытый ключ:

ssh-keygen -s users_ca -I awesomeuser -n serveruser -V + 1d userkey.pub

где ssh-keygen переключатели, использованные выше:

  • -s users_ca - закрытый ключ CA
  • -I awesomeuser - имя пользователя
  • -n serveruser - имя пользователя, для которого разрешена аутентификация
  • - V + 1d - укажите срок действия при подписании сертификата. Интервал действия может состоять из одного времени, указывающего, что сертификат действителен, начиная с настоящего момента и истекающего в это время, или может состоять из двух времен, разделенных двоеточием, чтобы указать явный временной интервал. Время начала может быть указано как дата в формате ГГГГММДД , время в формате ГГГГМДДЧЧММСС или относительное время (относительно текущего времени), состоящее из знака минус, за которым следует относительное время. в формате, описанном в разделе ФОРМАТЫ ВРЕМЕНИ sshd_config . Время окончания может быть указано как дата ГГГГММДД , время ГГГГММДДЧЧММСС или относительное время, начиная с символа плюса. Например: "+ 52w1d" (действительно до 52 недель и одного дня с этого момента), "- 4w: + 4w" (действительно с четырех недель назад до четырех недель с сейчас), «20100101123000: 20110101123000» (действует с 12:30 1 января 2010 г. до 12:30 1 января 2011 г.), «- 1d: 20110101» (действует со вчерашнего дня до полуночи 1 января 2011 г.).
  • userkey.pub - открытый ключ пользователя

d. Когда открытый ключ подписывается, создается новый открытый ключ с именем <старый открытый ключ> -cert.pub (в приведенном выше примере имя с be userkey-cert.pub ) генерируется. Подписанный ключ пользователя userkey-cert.pub: id "awesomeuser" серийный 0 для serveruser действителен с 2018-01-29T07: 59: 00 до 2018-01-30T08: 00: 53

e. Вновь созданный открытый ключ необходимо вернуть пользователю. Как только он его получит, он сможет получить доступ к серверу, настроенному с помощью SSH CA.

Это должно сделать это за вас.

3
ответ дан 3 December 2019 в 06:27

Теги

Похожие вопросы