====== Forgejo / git.moevm.info ====== ===== Настройка SSH-подключения ===== SSH (Secure Shell) — это стандартный безопасный протокол для подключения к удалённым системам и работы с Git. Его рекомендуется использовать вместо с HTTPS, поскольку он: * Безопаснее, т.к. использует криптографические ключи вместо пароля, который можно перехватить или подобрать. * Удобнее, т.к. после однократной настройки не требует постоянного ввода учётных данных. * Профессиональнее, т.к. фактически является стандартом для работы разработчиков с Git. Для работы по SSH вам необходимо сгенерировать пару ключей (приватный и публичный) и добавить публичный ключ в свой аккаунт на git.moevm.info. ==== Генерация ключей ==== - Генерация SSH-ключей происходит с помощью команды ''ssh-keygen -t ed25519 -f ~/.ssh/git.moevm.info_key'' * **ВАЖНО: используйте именно эту команду**, чтобы в дальнейшем избежать проблем с подключением. * через аргумент -f задается путь к итоговому файлу, использование пути по умолчанию при генерации ключа перезапишет ваши существующие SSH-ключи, что может нарушить работу с другими системами. - После ввода команды дважды нажмите Enter - На этом этапе программа ожидает от вас секретную фразу для ключа (дополнительный уровень безопасности) ''Enter passphrase (empty for no passphrase):'' - для "домашнего" использования этот шаг можно пропустить. - При успешном завершении вы увидите текст содержащий ''The key fingerprint is ... / The key's randomart image is'' - Выполните команду ''cat ~/.ssh/git.moevm.info_key.pub'' (она напечатает содержимое вашего публичного ключа, который вы только что сгенерировали) - **Сохраните выведенную строку** - она понадобится позднее - Строка должна начинаться с ''ssh-ed25519'' ==== Добавление открытого ключа ==== Чтобы система знала о вашем ключе и могла вас узнать при SSH-подключении, необходимо **Перейти на страницу** https://git.moevm.info/user/settings/keys - В разделе "**Управление ключами SSH**" нажать кнопку "**Добавить ключ**" - В поле "**Имя ключа**" ввести понятное вам название ключа (например, "Домашний ПК") - В поле "**Содержимое**" вставить строку, полученную командой ''cat ~/.ssh/git.moevm.info_key.pub'' - Нажать кнопку "**Добавить Ключ**", расположенную под заполненной формой {{ :common:forgejo-add-ssh.jpg?nolink |}} ==== Проверка, что всё работает ==== Выполните команду ''ssh -T git@git.moevm.info -p 2222 -i ~/.ssh/git.moevm.info_key'', при успешной настройке вы получите следующее сообщение: Hi there, ! You've successfully authenticated with the key named , but Forgejo does not provide shell access. If this is unexpected, please log in with password and setup Forgejo under another user. Если сообщение выглядит иначе, например, ''git@git.moevm.info: Permission denied (publickey).'' - проверьте корректность сгенерированного и введенного ключа на предыдущих шагах. **Однако на этом настройка не закончена** - чтобы работать с репозиториями понадобится настроить ваш ПК (см. следующий раздел). ==== Настройка SSH-конфигурации ==== Чтобы не вводить каждый раз информацию для SSH-подключения и использовать правильный SSH-ключ (поскольку у вас их может быть несколько), необходимо сохранить информацию о подключении в SSH-конфигурации, для этого необходимо: - Открыть в текстовом редакторе файл ''~/.ssh/config'' (например, с помощью команды ''nano ~/.ssh/config'') - Добавить в конец файла следующие строки (они зададут путь к вашему приватному ключу, порт и SSH-пользователя для подключения к git.moevm.info): - **Обратите внимание:** пользователь должен быть именно **git**, а не ваш логин Host git.moevm.info IdentityFile ~/.ssh/git.moevm.info_key Port 2222 User git После настройки можно выполнить команду ''ssh -T git.moevm.info'', результат которой должен выглядеть так же, как и результат команды ''ssh -T git@git.moevm.info -p 2222 -i ~/.ssh/git.moevm.info_key''. ==== Клонирование репозитория ==== На главной странице каждого репозитория можно найти ссылку для SSH-клонирования {{ :common:forgejo-repo-ssh.png?nolink |}} Её необходимо использовать в команде ''git clone'' аналогично тому, как используются https-ссылки, например, ''%%git clone ssh://git@git.moevm.info:2222/moevm/cs-2026-5300.git%%'' ===== Настройка двухфакторной аутентификации ===== - Перейти на страницу https://git.moevm.info/user/settings/security - Нажать кнопку "Включить TFA" и следовать инструкциям (подключить приложение-аутентификатор)