Table des matières

Créer sa clé d'authentification

Sous macOS ou sous Linux (Ubuntu):

  1. Faire la commande ssh-keygen et répondre aux questions.

Pour plus de sécurité:

$ ssh-keygen -t ed25519 -a 256 [-C "user@host"]

Meilleure compatibilité pour le moment:

$ ssh-keygen -t rsa -b 4096 -o -a 100

Sous Windows

ssh-keygen

Sur Windows, on peut installer Git (si on est pour l'utiliser ou qu'il est déjà installé) et dans le Git Bash la commande ssh-keygen est disponible.

Avec ssh-keygen la clé est dans %userprofile%\.ssh\id_rsa.pub.

Git GUI

Dans Git GUI, on peut aller dans le menu Help et faire Show SSH Key. Il va regarder dans ~/.ssh/ si id_rsa.pub existe. S'il n'existe pas, le bouton Generate Key sera disponible et il sera possible de générer la clé. S'il existe, ça va montrer la clé et on pourra la copier dans le presse-papier.

Copier sa clé dans le presse-papier

macOS

pbcopy < ~/.ssh/id_rsa.pub

Voir Generating SSH keys

Linux

Windows

Dans Git Bash, on peut faire ceci:

$ clip < ~/.ssh/id_rsa.pub

Copier la clé SSH sur le serveur

Ceci est la méthode pour copier la clé SSH pour se connecter en SSH au serveur sans avoir besoin de tapper le mot de passe à chaque fois.

$ ssh-copy-id 192.168.1.101

ou

$ ssh-copy-id [-p port] user@host

Méthode avec ssh-copy-id

  1. Générer une clé avec ssh-keygen. Utiliser Google pour en savoir plus.
  2. Installer HomeBrew avec ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)". Voir le site de Brew pour la commande exacte.
  3. Installer le package SSH-Copy-Id : brew install ssh-copy-id.
  4. Ensuite copier la clé : ssh-copy-id user@host en adaptant le user et le host.
  5. Le mot de passe sera demandé.
  6. Une fois copié, ssh user@host ne demandera plus de mot de passe.

Méthode sans ssh-copy-id

  1. Taper :
    cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

    Encore une fois, il ne faut pas oublier d'adapter le user et le host.

SSH Server

Installation:

$ sudo apt-get install openssh-server

Sécurité

Dans le fichier /etc/ssh/sshd_config:

Pour laisser les connexions remote:

$ sudo ufw allow ssh

Changer de port

Dans cet exemple on prend le port 22488, mais ça peut être n'importe quel autre port en haut de 1024 et en bas de 65535.

Dans le fichier /etc/ssh/sshd_config, décommenter la valeur Port et mettre Port 22488.

Ouvrir le firewall pour ce port:

$ sudo ufw allow 22488/tcp

Ensuite redémarrer le service:

$ sudo systemctl restart sshd

Se déconnecter et se reconnecter sur le port 22488:

$ ssh -p 22488 remotehost

Bloquer le port 22 sur le firewall:

$ sudo ufw deny ssh

Utiliser un fichier PEM

Sur Bitnami

  1. Télécharger le fichier PEM (donnera un fichier bitnami-hosting.cer)
  2. Faire un $ chmod 600 bitnami-hosting.cer
  3. Faire un SSH: $ ssh -i bitnami-hosting.cer bitnami@subdomain.bitnamiapp.com
    1. Si l'IP est statique, il faut utiliser l'IP.