На прошлом уроке ты усвоил правило: секреты в Git не место. Сейчас познакомимся с инструментом, у которого свой собственный секрет, — это SSH. Здесь нет задания в терминале: серверов в тренажёре нет, но понимать, как это устроено, важно — без SSH не обходится почти ни один деплой.
Что такое SSH
Представь, что нужный тебе компьютер стоит не на столе, а где-то в дата-центре — это , на котором живёт твой сайт. Как набирать на нём команды, не вставая с места?
SSH (от secure shell — «защищённая оболочка») — это безопасное соединение с удалённым компьютером по сети. Подключаешься одной командой:
ssh user@server
— и дальше ты будто сидишь за тем компьютером: ls, cd, cat и всё, что ты уже умеешь, работают с его файлами. Набираешь у себя — выполняется там. «Безопасная» в названии значит, что весь обмен зашифрован: по дороге его никто не прочитает.
Ключи вместо пароля
Можно входить по паролю, но надёжнее — по паре ключей. Их два, и роли у них разные:
- Приватный (закрытый) ключ — остаётся только на твоём компьютере. Это секрет, как пароль: его нельзя никому отдавать, выкладывать и — да, как на прошлом уроке — коммитить в Git.
- Публичный (открытый) ключ — его можно спокойно отдать: он кладётся на сервер. Сервер по нему узнаёт «свой» приватный ключ и пускает тебя без пароля.
Работает как замок и ключ: публичный ключ — это замок, который вешают на сервер, а приватный — единственный ключ к нему, который ты держишь при себе.
Приватный ключ обычно лежит в файле вроде ~/.ssh/id_ed25519 (без расширения .pub). Если файл заканчивается на .pub — это публичный ключ, его отдавать можно. Файл без .pub — приватный, его берегут как пароль.
Зачем это тебе
Когда дойдёшь до публикации своего проекта, SSH встретится сразу: по нему подключаются к серверу, чтобы развернуть код, и по нему же Git общается с GitHub, когда ты отправляешь коммиты. Глубоко настраивать ключи мы здесь не будем — достаточно понимать картину: подключение защищено, приватный ключ — секрет, публичный — нет.
Главное правило с прошлого урока работает и тут: всё, что называется «приватным» или «секретным ключом», — не для Git и не для чужих глаз.