Files
Helpers/generate_ssh.sh

60 lines
1.7 KiB
Bash
Raw Permalink Normal View History

2026-04-25 17:24:09 +03:00
#!/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 <<EOT >> "$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 "-----------------------------------------------------------------------"