nix config
at deck 46 lines 1.2 kB view raw
1#!/usr/bin/env bash 2set -e 3 4RED='\033[0;31m' 5GREEN='\033[0;32m' 6NC='\033[0m' 7 8username=${USER} 9export SSH_DIR=/Users/${username}/.ssh 10 11setup_ssh_directory() { 12 mkdir -p ${SSH_DIR} 13} 14 15prompt_for_key_generation() { 16 local key_name=$1 17 if [[ -f "${SSH_DIR}/${key_name}" ]]; then 18 echo -e "${RED}Existing SSH key found for ${key_name}.${NC}" 19 cat "${SSH_DIR}/${key_name}.pub" 20 read -p "Do you want to replace it? (y/n) " -n 1 -r 21 echo 22 if [[ $REPLY =~ ^[Yy]$ ]]; then 23 return 0 # Indicate key should be replaced 24 else 25 return 1 # Indicate key should be kept 26 fi 27 fi 28 return 0 # Indicate no key exists, so it should be created 29} 30 31generate_key() { 32 local key_name=$1 33 if prompt_for_key_generation "$key_name"; then 34 ssh-keygen -t ed25519 -f "${SSH_DIR}/${key_name}" -N "" 35 chown ${username}:staff "${SSH_DIR}/${key_name}"{,.pub} 36 else 37 echo -e "${GREEN}Kept existing ${key_name}.${NC}" 38 fi 39} 40 41setup_ssh_directory 42generate_key "id_ed25519" 43generate_key "id_ed25519_agenix" 44 45echo -e "${GREEN}SSH key setup complete.${NC}" 46echo -e "${GREEN}Remember to add the necessary keys to Github or other services as required.${NC}"