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

Как дать временный доступ по 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-адрес, к которому я хочу подключиться.

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

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

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

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

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

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

-rw------- 1 root root 404 Jan 29 08:05 users_ca.pub

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

 # Allow access from signed keys
 TrustedUserCAKeys /etc/ssh/users_ca.pub

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

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

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

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

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

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 - указать срок действия при подписании сертификата. Интервал действия может состоять из одного времени, указывающего, что сертификат действителен, начиная с настоящего момента и истекающего в это время, или может состоять из двух времен, разделенных двоеточием, чтобы указать явный временной интервал. Время начала может быть указано как дата в YYYYMMDD формат, время в YYYYMMDDHHMMSS формат или относительное время (по отношению к текущему времени), состоящее из знака минус, за которым следует относительное время в формате, описанном в разделе ФОРМАТЫ ВРЕМЕНИ sshd_config. Время окончания может быть указано как YYYYMMDD дата, а YYYYMMDDHHMMSS время или относительное время, начинающееся с плюса. Например: "+52w1d" (действительно до 52 недель и одного дня), "-4w:+4w" (действует с четырех недель назад до четырех недель с настоящего момента), "20100101123000:20110101123000" (действует с 12:30 1 января 2010 г. до 12:30 1 января 2011 г.), "-1d:20110101" (действует со вчерашнего дня до полуночи 1 января 2011 г.).
  • userkey.pub - открытый ключ пользователя

d. Когда открытый ключ подписывается, новый открытый ключ с именем <old public key>-cert.pub (в приведенном выше примере имя с be userkey-cert.pub) генерируется. Signed user key userkey-cert.pub: id "awesomeuser" serial 0 for serveruser valid from 2018-01-29T07:59:00 to 2018-01-30T08:00:53

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

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