Files
dial/create_ssh_keypair (1).sh
T
bsncubed 8af44dfcd2 Initial commit: dial — interactive SSH host picker
A fast, read-only ~/.ssh/config picker that exec's the system ssh client.
Includes: static high-contrast picker with recency/frequency/name sort and
tag grouping, `dial keygen` (native ed25519/RSA + optional config entry), and
an optional offline YubiKey launch gate with one-time recovery codes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 23:18:23 +10:00

65 lines
1.9 KiB
Bash

#!/bin/bash
# Clear the terminal screen
clear
# Function to create an SSH key
create_ssh_key() {
local hostname=$1
local username=$2
local key_name=$3
# Define the file name for the key
local file_name="${username}@${hostname}${key_name}"
# Generate the SSH key
ssh-keygen -t rsa -b 4096 -C "${username}@${hostname}" -f ~/.ssh/${file_name} -N ""
# Add a suffix to the .pub file
local pub_file=~/.ssh/${file_name}.pub
sed -i '' "s/$/ ${key_name}/" ${pub_file}
# Display the public key
echo -e "\033[1;32mPublic key for ${file_name}. This will not be shown again, and the file has been deleted.\033[0m"
echo -e "\033[1;32mPlace the key in the authorized_keys file\033[0m"
cat ${pub_file}
rm ${pub_file}
echo -e "\033[1;32mSSH key created: ${file_name}\033[0m"
echo
}
# Prompt the user for hostname and username with colors
echo -e "\033[1;34mEnter the hostname:\033[0m"
read hostname
echo -e "\033[1;34mEnter the username:\033[0m"
read username
# Prompt the user for the number of keys to create
echo -e "\033[1;34mEnter the number of keys to create:\033[0m"
read num_keys
# Loop to create the specified number of keys
for ((i=1; i<=num_keys; i++)); do
echo -e "\033[1;34mEnter the key name for key $i:\033[0m"
read key_name
create_ssh_key $hostname $username $key_name
done
echo -e "\033[1;32mAll keys created successfully, Time to add one of those files to the local .ssh/config file. To not do that, type ^C\033[0m"
echo -e "\033[1;34mHostname to add to config\033[0m"
read ssh_host
echo
echo -e "\033[1;34mUser to add to config\033[0m"
read ssh_user
echo
echo -e "\033[1;34mKeyfile name to add to config\033[0m"
read ssh_keyfile
echo
echo "" >> ~/.ssh/config
echo "Host $ssh_host" >> ~/.ssh/config
echo " User $ssh_user" >> ~/.ssh/config
echo " IdentityFile ~/.ssh/$ssh_keyfile" >> ~/.ssh/config
echo "" >> ~/.ssh/config