В этой заметке рассмотрим создание ssh ключей для sshd авторизации на Unix подобных операционных системах (linux, bsd).
Многие из нас используют для доступа к своим серверам протокол ssh и парольную авторизацию.
Что дает злоумышленникам организовать брутфорс-атаки.
SSH авторизация позволяет вместо парольной защиты использовать ключевую пару состоящую из открытого и закрытого ключа (приватный и публичный ключ).
Ключ можно усилить парольной защитой.
SSHd сервер можно настроить на авторизацию только по ключам.
Авторизация по ключам позволяет не публиковать пароли в пользовательских скриптах (scp, pscp, plink и т.п.).
Для реализации нашей задачи, нам потребуется утилита PuTTYgen.
PuTTYgen входит в дистрибутив Putty или можно ее скачать отдельно с официального сайта разработчика (32 bit / 64 bit).
Запускаем PuTTYgen
- Выбираем тип ключа — RSA
Существует две версии RSA, RSA1 является небезопасным и устаревшим.
В PuTTYgen используется алгоритм RSA второй версии.
- Указываем длину ключа (по умолчанию используется 2048 битный ключ)
- Нажимаем Generate
- Можно установить пароль в поле Key passphrase и повторить его в поле Confirm passphrase
- Сохраняем приватный ключ, именование на вашу усмотрение.
- Выделяем публичный ключ и копируем его (Ctrl+C), должна получится одна строка:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAxqkN6BjwMaaaUAks6ICC0nrWNc/W8TXJsEPMCk2/toYltLEtWglH1ykUJeeHpLk2R6CWvHIzkGFLiDzZ2Hjr5VYXlBiYM+63RUcfTSb/53/OXap2XEapkelumSNZ6AKxG2+TfuJK5qkr6HluMYseA3ijQT9c1cK4Yk5TAf8ArARJbCkBRC7HpM0yN1VxgFVfajEL8Za7BZe3tw+oiKK9LyKp6q5T4vw34QzDdMyNjxa7GtUlFnF5HJ2gE9KQJv72bkhBfwVJfteoZWiiAwQtgd4O8KG0iJnAcJoS8pZIe6u+/7EECXOKph9H/CdsYx1g2IpxOmAruRpzrMt8fCm1JQ== rsa-key-20210314
- Логинимся на сервере используя связку login-password
Открываем файл на запись:vi ~/.ssh/authorized_keys
И вносим в него данные нашего открытого ключа
В SSH-клиенте указываем, что используем ssh-ключ, я использую PuTTy
Пробуем залогиниться указав только имя, если все сделано правильно, войдем в систему:
login as: username Authenticating with public key "rsa-key-20210314" Last login: Sun Mar 14 12:44:21 2021 from 1.1.1.1
После этого можно отключить возможность авторизации по паролю:
Linux:
$ sudo vi /etc/ssh/sshd_config PasswordAuthentication no
Перезапустим sshd сервис:
$ sudo service ssh restart
FreeBSD:
> sudo vi /etc/ssh/sshd_config PasswordAuthentication no
Перезапустим sshd сервис:
> sudo service sshd restart Performing sanity check on sshd configuration. Stopping sshd. Waiting for PIDS: 958. Performing sanity check on sshd configuration. Starting sshd.
Использование утилиты Plink (для выполнение команд на удаленном сервере):
plink -batch username@server.ru df -h Filesystem Size Used Avail Capacity Mounted on zroot/ROOT/default 15G 4,1G 11G 27% / devfs 1,0K 1,0K 0B 100% /dev zroot/tmp 11G 3,9M 11G 0% /tmp zroot 11G 96K 11G 0% /zroot zroot/usr/home 11G 96K 11G 0% /usr/home zroot/var/log 11G 49M 11G 0% /var/log zroot/var/audit 11G 96K 11G 0% /var/audit zroot/var/crash 11G 96K 11G 0% /var/crash zroot/usr/ports 13G 1,9G 11G 14% /usr/ports zroot/var/tmp 11G 160K 11G 0% /var/tmp zroot/var/mail 11G 128K 11G 0% /var/mail zroot/usr/src 11G 96K 11G 0% /usr/src
Plink так же авторизуется по ключу указанному в сессии Putty — server.ru (название сессии).
На этом все, если есть какие-либо замечания-дополнения — добро пожаловать в комментарии.