Add generate_ssh.sh
This commit is contained in:
60
generate_ssh.sh
Normal file
60
generate_ssh.sh
Normal file
@@ -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 <<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 "-----------------------------------------------------------------------"
|
||||||
Reference in New Issue
Block a user