Kleine Pimmel Scripts


#!/bin/bash
#
##
BDIR="/home"
##
#
set -e

NUSER="$1"
NHOME="$BDIR/$1"

bold=$(tput bold)
normal=$(tput sgr0)
red=$(tput setf 4)
green=$(tput setf 2)

if [ -z "$NUSER" ]; then
        echo "${red}No user set!${normal}"
        exit 1
fi

if [ -d "$NHOME" ]; then
        echo "${red}User or home already exists!${normal}"
        exit 1
fi

read -s -p "Password for key (empty for none): " password1
echo ""

if [ -n "$password1" ]; then
        read -s -p "Repeat password: " password2
        echo ""
        if [ "$password1" != "$password2" ]; then
                        echo "${red}Password missmatch!${normal}"
                        exit 1
        fi
fi

NPASS=$(tr -dc _A-Z-a-z-0-9 </dev/urandom | head -c 32 ; echo '')

useradd $NUSER -d $NHOME -m -p "$NPASS" -s /bin/bash
passwd -q -l $NUSER

mkdir -p "$NHOME/.ssh"

ssh-keygen -t rsa -b 4096 -f $NHOME/.ssh/id_rsa -N "$password1" -C "$NUSER@$HOSTNAME"

echo "Generate PuTTy file:"

puttygen $NHOME/.ssh/id_rsa -o $NHOME/.ssh/id_rsa.ppk

cat $NHOME/.ssh/id_rsa.pub >> $NHOME/.ssh/authorized_keys

chown -R "$NUSER:$NUSER" "$NHOME"
chmod 700 "$NHOME/.ssh"
chmod 600 "$NHOME/.ssh/authorized_keys" "$NHOME/.ssh/id_rsa" "$NHOME/.ssh/id_rsa.pub" "$NHOME/.ssh/id_rsa.ppk"

echo "${bold}Putty PPK:${normal} ${green}$NHOME/.ssh/id_rsa.ppk${normal}"
echo "Done adding ${bold}$NUSER${normal} at ${bold}$NHOME${normal}."