Commit 77fbecba authored by Васильчук Іван's avatar Васильчук Іван
Browse files

Update Linux_CA

parent 11c027ed
linux CA
Подписание сертификатов
#linux CA#
##Подписание сертификатов##
На СА сервере генерим ключи RSA
```bash
ssh-keygen -f server_ca
*Подписываем ключ СА*
```
##Подписываем ключ СА*##
```bash
ssh-keygen -s signing_key -I key_identifier -h -n host_name -V +52w host_rsa_key
```
Рассмотрим его подробнее:
-s: этот флаг задаёт закрытый ключ, при помощи которого будут подписаны остальные ключи.
-I: эта опция задаёт имя сертификата, которое необходимо для логирования.
-h: указывает, что ключ принадлежит хосту, а не клиенту.
-n: имя хоста или пользователя, связанного с сертификатом.
-V: задаёт срок действия сертификата; в данном примере сертификат будет действителен в течение 52 недель.
* -s: этот флаг задаёт закрытый ключ, при помощи которого будут подписаны остальные ключи.*
* -I: эта опция задаёт имя сертификата, которое необходимо для логирования.*
* -h: указывает, что ключ принадлежит хосту, а не клиенту.*
* -n: имя хоста или пользователя, связанного с сертификатом.*
* -V: задаёт срок действия сертификата; в данном примере сертификат будет действителен в течение 52 недель.*
```bash
ssh-keygen -s server_ca -I host_auth_server -h -n auth.example.com -V +52w /etc/ssh/ssh_host_rsa_key.pub
Signed host key /etc/ssh/ssh_host_rsa_key-cert.pub: id "host_auth_server" serial 0 for auth.example.com valid from 2014-03-20T12:25:00 to 2015-03-19T12:26:05
Подписываем ключ для хоста (сервер клиент)
```
##Подписываем ключ для хоста (сервер клиент)##
Берем его публичный ключ
```bash
scp root@sshserver.example.com:/etc/ssh/ssh_host_rsa_key.pub .
```
После копирования подписываем его ключами сервера СА
```bash
ssh-keygen -s server_ca -I host_sshserver -h -n sshserver.example.com -V +52w ssh_host_rsa_key.pub
```
Возвращаем подписаный сертификат обратно на хост
```bash
scp ssh_host_rsa_key-cert.pub root@sshserver.example.com:/etc/ssh/
```
*Поддержка сертификатов*
##Поддержка сертификатов##
На сервере СА и на хосте нужно отредактировать файл
```bash
sudo nano /etc/ssh/sshd_config
```
Найдите строку HostCertificate (или добавьте её в конец файла, если такой строки нет) и укажите в ней путь к сертификату:
```bash
HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
```
Сохраниете, и перезапустите sshd
```bash
sudo service ssh restart
sudo service sshd restart
```
Переходим на машину клиета, пользователя
Создаем/открываем файл nano ~/.ssh/known_hosts
Создаем/открываем файл
```bash
nano ~/.ssh/known_hosts
```
И добавляем в него публичный ключь сервера СА
На машине СА открытый ключ можно узнать таким образом:
```bash
cat ~/server_ca.pub
```
Строка в файле ~/.ssh/known_hosts будет выглядеть так:
```bash
@cert-authority * ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxC+gikReZlWEnZhKkGzhcNeRD3dKh0L1opw4/LQJcUPfRj07E3ambJfKhX/+G4gfrKZ/ju0nanbq+XViNA4cpTIJq6xVk1uVvnQVOi09p4SIyqffahO9S+GxGj8apv7GkailNyYvoMYordMbIx8UVxtcTR5AeWZMAXJM6GdIyRkKxH0/Zm1r9tsVPraaMOsKc++8isjJilwiQAhxdWVqvojPmXWE6V1R4E0wNgiHOZ+Wc72nfHh0oivZC4/i3JuZVH7kIDb+ugbsL8zFfauDevuxWeJVWn8r8SduMUVTMCzlqZKlhWb4SNCfv4j7DolKZ+KcQLbAfwybVr3Jy5dSl root@auth
```
Сохраните и закройте файл.
*Настройка ключей пользователей*
##Настройка ключей пользователей##
Переходим на сервер СА
Создаем новый набор, ключей которыми будем подписывать ключи пользователей
```bash
ssh-keygen -f users_ca
```
Копируем публичный ключь на хост к которому будет подключатся клиент
```bash
scp users_ca.pub root@sshserver.example.com:/etc/ssh/
```
На хосте редактируем
```bash
sudo nano /etc/ssh/sshd_config
```
ДОбавляем строку
TrustedUserCAKeys /etc/ssh/users_ca.pub
ПЕрезапускаем ssh на хосте
*Подписываем ключи пользователя*
##Подписываем ключи пользователя##
Идем на сервер СА
Ключь может быть сгенерирован как самостоятельно так и с использованием токена
Для токена - ssh-keygen -D /usr/lib/libeToken.so > id_rsa.pub
Для токена -
```bash
ssh-keygen -D /usr/lib/libeToken.so > id_rsa.pub
```
Берем ключь пользователя с его машины
```bash
scp username@client.example.com:/home/username/.ssh/id_rsa.pub .
```
Подписываем публичный ключь пользователя на сервере СА
```bash
ssh-keygen -s users_ca -I user_username -n username -V +52w id_rsa.pub
```
перемещаем ключ обратно на клиент
```bash
scp id_rsa-cert.pub username@client.example.com:/home/username/.ssh/
```
Пробуем залогинится на хост
```bash
ssh user@sshserver.example.com - должно сработать без запроса пароля.
```
Если публичный ключ генерился с использованием токена, на клиенте открываем файл
```bash
nano /home/username/.ssh/config
```
и добавляем блок
```bash
#Test_server
Host sshserver.example.com
User username
PKCS11Provider /usr/lib/libeToken.so
\ No newline at end of file
PKCS11Provider /usr/lib/libeToken.so
```
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment