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