From 8f205bc3ea87139da4fb6bccfd9110e0a454f056 Mon Sep 17 00:00:00 2001 From: Alan_Shan Date: Sat, 25 Apr 2026 17:24:09 +0300 Subject: [PATCH] Add generate_ssh.sh --- generate_ssh.sh | 60 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 generate_ssh.sh diff --git a/generate_ssh.sh b/generate_ssh.sh new file mode 100644 index 0000000..5fa7b69 --- /dev/null +++ b/generate_ssh.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Переменные +SSH_DIR="$HOME/.ssh" +KEY_NAME="id_alaev_git" +KEY_PATH="$SSH_DIR/$KEY_NAME" +CONFIG_FILE="$SSH_DIR/config" + +# 1. Создаем папку .ssh, если её нет +if [ ! -d "$SSH_DIR" ]; then + echo "Creating directory $SSH_DIR..." + mkdir -p "$SSH_DIR" + chmod 700 "$SSH_DIR" +fi + +# 2. Генерация SSH ключа (ed25519) +if [ -f "$KEY_PATH" ]; then + echo "Warning: Key $KEY_NAME already exists. Skipping generation." +else + echo "Generating SSH ed25519 key..." + ssh-keygen -t ed25519 -f "$KEY_PATH" -N "" +fi + +# 3. Проверка и создание файла config +if [ ! -f "$CONFIG_FILE" ]; then + echo "Config file not found. Creating $CONFIG_FILE..." + touch "$CONFIG_FILE" + chmod 600 "$CONFIG_FILE" +fi + +# 4. Добавление записи в config, если её там еще нет +HOST_ENTRY="Host tea.alaev.site" + +if grep -q "$HOST_ENTRY" "$CONFIG_FILE"; then + echo "Entry for tea.alaev.site already exists in config." +else + echo "Adding settings for tea.alaev.site to $CONFIG_FILE..." + cat <> "$CONFIG_FILE" + +Host tea.alaev.site + HostName tea.alaev.site + PreferredAuthentications publickey + Port 222 + IdentityFile ~/.ssh/id_alaev_git +EOT +fi + +# 5. Проверка прав доступа +echo "Fixing permissions..." +chmod 700 "$SSH_DIR" +chmod 600 "$KEY_PATH" +chmod 600 "$KEY_PATH.pub" +chmod 600 "$CONFIG_FILE" + +# 6. Вывод публичного ключа для копирования +echo -e "\n--- [ DONE ] ---" +echo "Your public key (copy it to your Git settings):" +echo "-----------------------------------------------------------------------" +cat "${KEY_PATH}.pub" +echo "-----------------------------------------------------------------------" \ No newline at end of file