Jeg oplever til tider at jeg skal have lavet et SSH certifikat, så jeg kan benytte dette til login, fremfor at benytte min kode hvergang.
Af sikkerhedsmæssige årsager, ønsker jeg at have et seperat certifikat pr. server, og jeg har derfor lavet nedenstående lille script, der generer et SSH certifikat, og automatisk lægger det op på en server, samtidig med at den skriver detaljerne ind I din SSH konfiguration.
#!/bin/bash
clear
read -p "Please enter hostname: " hostname
if [ ! -n "$hostname" ]; then
echo "Hostname can not be left empty"
exit
fi
read -p "Please enter alias (Default: $hostname): " alias
if [ ! -n "$alias" ]; then
alias=$hostname
fi
read -p "Please enter username (Default: `eval whoami`): " username
if [ ! -n "$username" ]; then
username=`eval whoami`
fi
read -p "Please enter port (Defaults to 22): " port
if [ ! -n "$port" ]; then
port="22"
fi
echo "We are adding $hostname with the alias $alias, and the username $username, on port $port"
echo "Please wait while we generate the identity file...";
identity="$HOME/.ssh/identity_$hostname"
ssh-keygen -q -t rsa -b 2048 -N "" -f $identity
cat $identity.pub | ssh $username@$hostname -p $port "mkdir -m 0700 -p \
.ssh && cat - >> .ssh/authorized_keys && chmod 0600 \
.ssh/authorized_keys"
if [[ $? -eq "0" ]]; then
echo -e "Host \t$alias
User \t$username
Port \t$port
HostName \t$hostname
IdentityFile \t$identity
" >> ~/.ssh/config
else
echo "
Failed to upload identity file, please correct the error above, and try again."
fi