ssh-keygen.sh 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/bash
  2. read -p "Neuer Hostname (leer lassen zum Beibehalten des alten): " HOSTNAME;
  3. if [ "$HOSTNAME" != "" ]; then
  4. hostname $HOSTNAME;
  5. echo -n "$HOSTNAME" > /etc/hostname;
  6. echo "127.0.0.2 $HOSTNAME" >> /etc/hosts;
  7. fi
  8. for EXE in id mkdir ssh-keygen hostname date; do
  9. if [ ! -x "$(which $EXE 2>/dev/null)" ]; then
  10. echo "Die Datei $EXE konnte nicht gefunden werden";
  11. exit 1;
  12. fi
  13. done
  14. if [ "$(id -u)" -ne "0" ]; then
  15. echo "Dieses Script bitte nur als root nutzen";
  16. exit 1;
  17. fi
  18. mkdir -p /root/.ssh;
  19. if [ ! -d "/root/.ssh" ]; then
  20. echo "Das Verzeichnis /root/.ssh konnte nicht angelegt werden";
  21. exit 1;
  22. fi
  23. mkdir -p /etc/ssh;
  24. if [ ! -d "/etc/ssh" ]; then
  25. echo "Das Verzeichnis /etc/ssh konnte nicht angelegt werden";
  26. exit 1;
  27. fi
  28. rm -f /root/.ssh/id_*;
  29. ssh-keygen -q -b 4096 -t rsa -N "" -C "$(hostname -s)--$(date '+%Y-%m-%d')" -f /root/.ssh/id_rsa;
  30. ssh-keygen -q -b 1024 -t dsa -N "" -C "$(hostname -s)--$(date '+%Y-%m-%d')" -f /root/.ssh/id_dsa;
  31. ssh-keygen -q -b 521 -t ecdsa -N "" -C "$(hostname -s)--$(date '+%Y-%m-%d')" -f /root/.ssh/id_ecdsa;
  32. ssh-keygen -q -t ed25519 -N "" -C "$(hostname -s)--$(date '+%Y-%m-%d')" -f /root/.ssh/id_ed25519;
  33. rm -f /root/.ssh/identity &&
  34. ln -s /root/.ssh/id_rsa /root/.ssh/identity;
  35. for TYPE in rsa dsa ecdsa ed25519; do
  36. cp /root/.ssh/id_${TYPE} /etc/ssh/ssh_host_${TYPE}_key;
  37. cp /root/.ssh/id_${TYPE}.pub /etc/ssh/ssh_host_${TYPE}_key.pub;
  38. done