Table des matières
Créer sa clé d'authentification
Sous macOS ou sous Linux (Ubuntu):
- 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
- Générer une clé avec
ssh-keygen
. Utiliser Google pour en savoir plus. - Installer HomeBrew avec
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
. Voir le site de Brew pour la commande exacte. - Installer le package SSH-Copy-Id :
brew install ssh-copy-id
. - Ensuite copier la clé :
ssh-copy-id user@host
en adaptant leuser
et lehost
. - Le mot de passe sera demandé.
- Une fois copié,
ssh user@host
ne demandera plus de mot de passe.
Méthode sans ssh-copy-id
- 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 lehost
.
SSH Server
Installation:
$ sudo apt-get install openssh-server
Sécurité
Dans le fichier /etc/ssh/sshd_config
:
- Désactiver le login de root, mettre
no
àPermitRootLogin
(par défaut c'estprohibit-password
sur Ubuntu 16.04). - Décommenter
PasswordAuthentication
et mettreno
.
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
- Télécharger le fichier PEM (donnera un fichier
bitnami-hosting.cer
) - Faire un
$ chmod 600 bitnami-hosting.cer
- Faire un SSH:
$ ssh -i bitnami-hosting.cer bitnami@subdomain.bitnamiapp.com
- Si l'IP est statique, il faut utiliser l'IP.