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