SSH или в по-масовия случай при Linux - OpenSSH може да се конфигурира за логин чрез сертификати/ключове. Какви ползи ще ни донесе това?

Ами първата и вероятно най-важна полза от цялата работа е сигурността. Няма да навлизам в много подробности, но сигурно знаете че автентикацията чрез публичен/частен ключ в повечето случаи е много по-сигурна от тази чрез пароли.

Е освен ако нямате парола на ключа и някой не ви го открадне по някакъв начин :))

Вторият плюс е удобството. Това обаче е нож с две остриета. Наистина понякога е доста удобно да се логвате само с една команда без да въвеждате пароли, но ако нямате парола на ключа всеки с root достъп до машината ще може да го използва.

Затова препоръчвам да слагате парола на генерираните от вас ключове. По този начин дори и някой да има достъп, той няма да може да използва ключа без парола.

Процедурата по генериране на ключове е следната:

С командата ssh-keygen генерирате ключ в локалната машина. Може да зададете допълнителни опции като дължина на ключа в битове,криптиращ алгоритъм, коментар и др. По подразбиране програмата създава ключ с 2048 бита дължина и използва RSA като криптиращ алгоритъм.

След като се генерира той се запаметява в ~/.ssh/id_rsa и id_rsa.pub за частен и публичен ключ.

След това трябва добавите съдържанието на публичният ключ в ~/.ssh/authorized_keys файла на отдалечената машина. Ако не съществува,създайте файла и му задайте права 600.

За по-лесно може да добавите ключа чрез ssh-copy-id, който идва инсталиран в Debian-ските деривативи. Синтаксисът му е ssh-copy-id user@host.

В по-голяма част от случаите автентикацията чрез ключове е включена по подразбиране. Ако не е, може да я позволите като редактирате конфигурационният файл на ssh в отдалечената машина, по-подразбиране се намира в /etc/ssh/sshd_config.

След като имате достъп чрез ключ може да изключите достъпът чрез парола за по-голяма сигурност. Ако имате парола на самият ключ тя ще се поиска при първото логване от локалната машина.