summaryrefslogtreecommitdiffstats
path: root/bin/sshserver-gen.sh
blob: aa497322bf60e248f042f25d0317732a27eed89f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/bash

# Notice :

# avant de runner le script, il faut mettre à jour le fichier de conf
# avec le bon serial dans ansible
# (ansible ne relance pas sshd, donc il n'y a pas de risque de panne)
# Temps d'exécution moyen : 3h

# Le serial doit être identique à la variable ansible
SERIAL="1"

# list of hosts available: "blackbird falcon nsa nsb nsc nsd nse
# packardmerlin prattandwhitney rollsroyce"
SERVERHOST="blackbird"

KEYDIR="$HOME/park-admin/ssh/"

PRIVATEKEY="$KEYDIR/$SERVERHOST/etc/ssh/ssh_host_ed25519_key.$SERIAL"
PUBKEY="${PRIVATEKEY}.pub"
MODULE="$KEYDIR/$SERVERHOST/etc/ssh/moduli.$SERIAL"
CANDIDATES="${MODULE}.candidates"

export PRE="\e[93m[!]\e[0m:"


# Partie génération des clés
ssh-keygen -t ed25519 -N "" -C "" -f $PRIVATEKEY

ssh-keygen -G $CANDIDATES -b 4096
ssh-keygen -T $MODULE -f $CANDIDATES
rm -f $CANDIDATES

chmod 644 $MODULE
chmod 640 $PRIVATEKEY
chmod 644 $PUBKEY


# Partie déploiement
scp $KEYDIR/$SERVERHOST/etc/ssh/* $SERVERHOST:/etc/ssh/
ssh $SERVERHOST chown root:ssh_keys /etc/ssh/ssh_host_ed25519_key.$SERIAL
ssh $SERVERHOST mv -f /etc/ssh/moduli /etc/ssh/moduli.old
ssh $SERVERHOST mv /etc/ssh/moduli.$SERIAL /etc/ssh/moduli

# puis mettre à jour mon fichier known_hosts
echo -e "$PRE./Mettre à jour known_hosts-$SERVERHOST"

# puis restart sshd sur le serveur cible
ssh $SERVERHOST systemctl restart sshd