mirror of
https://github.com/ilyamak04/DevOps.git
synced 2025-04-05 15:34:49 +02:00
35 lines
2.1 KiB
Markdown
35 lines
2.1 KiB
Markdown
- `ssh-keygen -t ed25519 -f ~/.ssh/<path>` - создаёт пару ssh-ключей (лучше защитить ключ паролем)
|
||
- `ssh-copy-id -i ~/.ssh/<path> <username>@<servername>`- добавляет публичный ключ на сервер
|
||
### Конфигурация ssh сервера
|
||
|
||
- В файле `/etc/ssh/sshd_config` должны быть настройки (после изменения файла перезагрузить демон ssh `systemctl restart sshd`):
|
||
- PermitRootLogin no - исключает возможность подключения на сервер под рутом
|
||
- PubkeyAuthentication yes
|
||
- PasswordAuthentication no
|
||
- Публичные ключи хранятся в директории `~/.ssh/authorized_keys`
|
||
- Директория `~/.ssh` должна иметь права 700.
|
||
- Файл `authorized_keys` должен иметь права 600.
|
||
|
||
### Конфигурация ssh клиента
|
||
- `vi ~/.ssh/config` - создаёт файл конфигурации
|
||
- Поместить в файл (заполнить своими данными):
|
||
```bash
|
||
Host myserver
|
||
HostName 213.171.31.5 # или *.com
|
||
User user
|
||
ForwardAgent yes # Перенаправляем SSH-агент на удалённый сервер
|
||
IdentityFile /Users/username/.ssh/id_rsa
|
||
IdentitiesOnly yes # Используем только указанный ключ для аутентификации
|
||
AddKeysToAgent yes # Добавляем ключ в SSH-агент после первого использования
|
||
ServerAliveInterval 60
|
||
ServerAliveCountMax 1200
|
||
```
|
||
### SSH Agent
|
||
SSH Agent выбирает ssh-ключи для подключения к соответствующим серверам
|
||
|
||
Также использование ssh-agent позволяет вводить пароль от ключа только один раз, при первом подключении к серверу
|
||
|
||
`eval $(ssh-agent)` - запускает ssh-agent
|
||
|
||
`ssh-add ~/.ssh/id_rsa` - добавляет ключ в ssh-agent
|