ssh


I - Basique


# création de la paire de clé
$ ssh-keygen -t rsa -b 4096 -C "Jean Alfonse public key"
# /home/alfonse/.ssh/id_rsa     --> privée
# /home/alfonse/.ssh/id_rsa.pub --> publique

# on partage notre public key sur un serveur
$ ssh-copy-id -p 22 -i /home/alfonse/.ssh/id_rsa.pub alfonse@10.10.10.10

# configuration du serveur ssh
$ vim /etc/ssh/sshd_confi
# ...
PermitRootLogin no
PasswordAuthentification no
Banner /chemin/vers/motd # optionnel
# ...

# redémarrer le service
$ systemctl restart sshd

II - ssh-agent


C’est un agent qui stocke la private key + passphrase pendant la durée de la session. Cela permet de ne pas re-saisir la passphrase à chaque connexion.

# on lance l'agent
$ ssh-agent
# ...
SSH_AUTH_SOCK=/path/example/blabla; export SSH_AUTH_SOCK;
# ...

# copie et éxecution de SSH_AUTH_SOCK=... + le export
$ SSH_AUTH_SOCK=/path/example/blabla; export SSH_AUTH_SOCK;

# on donne la passphrase
$ ssh-add

# quand on veut arrêter l'agent
$ ssh-add -d

III - ~/.ssh/config


On peut ajouter de la configuration sur les hôtes.

$ vim ~/.ssh/config
# ...
Host super-site.fr 10.10.10.10
  User alfonse

Host mon-site
  HostName mon-super-site.fr
  User admin
  Port 2222

Host *
  User alfonse
# ...
# commande de base
$ ssh -p 2222 admin@mon-super-site.fr

# commande simplifiée
ssh mon-site

IV - ~/.ssh/know_hosts


Ce fichier contient toutes les empreintes de première connexion. Il peut être parfois nécessaire de supprimer quelques entrées, suite à un changement de serveur par exemple.

# supprimer une entrée
$ ssh-keygen -R mon-super-site.fr
# ou
$ ssh-keygen -R 10.10.10.10

# -R  -- remove host from known_hosts file