Français, baguette, fromage !
Mon serveur YunoHost
Matériel: Vieil ordinateur
Version de YunoHost: 4.1.8
J’ai accès à mon serveur : En SSH | Par la webadmin
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non (j’ai essayé de modifier la connexion en SSH sur un fichier test, mais j’ai été vite refroidi et remis le fichier d’origine)
Description du problème
Bonjour, j’ai déjà configuré un accès SSH pour un serveur Debian (non Yunohost) en :
- remplaçant la connexion avec mot de passe par une connexion avec une paire de clé,
- et aussi en changeant le port de connexion.
Pour cela, j’ai suivi scrupuleusement le tutoriel du site Korben. L’avantage est que je dispose déjà dans mon pc portable d’une paire de clé publique/privée, donc je n’ai pas à en refaire une.
MAIS, avec Yunohost, alors que je pensais être devenu un as du SSH (en fait non), toutes mes tentatives de connexion on échouées (le message d’erreur pour la paire de clé affichant quelque chose du genre too many login attempts
, et pour le changement de port, impossible de me connecter tout simplement).
Question :
J’aimerais que vous me donniez votre avis sur les modifs que j’ai faites et que vous me disiez si elles sont erronées, ou si tel paramètre est obsolète, mal placé, etc.
Pour le problème de changement de port je n’arrive pas à suspecter le souci (j’ai peut-être pensé ouvrir un port alors qui ne l’était pas). Quant au problème de la connexion avec clé, je suspecte d’avoir ajouté le mauvais utilisateur au groupe autorisé à se connecter en SSH.
Dites-moi ce que vous en pensez, j’ai disséminé mes pensées via des remarques le long de ce tuto pour que vous puissiez comprendre mes suspicions.
Merci beaucoup pour votre aide, et ne vous endormez pas en lisant !
Voici les étapes suivies :
- Connexion SSH sur le serveur via le port classique (22) et mot de passe, puis modification de la config SSH sur le serveur (avant de modifier le fichier, je fais une copie au cas où) :
ssh korben@monserveur.com
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_original
sudo nano /etc/ssh/sshd_config
- Changement de port en remplaçant le numéro 22 par 1234 par exemple :
Protocol 2
Port 22
devient :
Protocol 2
Port 1234
- Relancer le serveur et se reconnecter avec le nouveau port :
/etc/init.d/ssh restart
ssh -p1234 korben@monserveur.com
Remarque 1 : déjà là, le changement de port ne fonctionnait pas, j’avais pourtant ouvert les ports sur la box et sur l’interface webadmin. Une idée ?
- Modification des droits d’accès au dossier ssh du serveur (pour y transférer la clé) :
chmod 0700 ~/.ssh
- Transfert de la clé publique du pc portable vers le serveur :
scp -P 1234 ~/.ssh/id_server.pub korben@monserveur.com:~/.ssh/authorized_keys
- Remodification des droits d’accès au dossier ssh du serveur (pour le verrouiller) :
chmod 0600 ~/.ssh/*
- Mise en place d’un groupe autorisé à se connecte en ssh et ajout du user dans ce groupe :
groupadd sshusers
usermod -a -G sshusers korben
Remarque 2 : dans le tuto, il est question de l’utilisateur
korben
. En voulant modifier ce nom, j’ai misadmin
(du serveur yunohost). Avec le recul, je pense que j’aurais dû mettre le nom d’utilisateur de mon pc portableprog-amateur_laptop
puisque c’est lui qui se connecte en ssh vers mon serveur, qu’en pensez-vous ?
- Remodification de la config SSH sur le serveur :
sudo nano /etc/ssh/sshd_config
- Modification du paramètre Hostkey pour donner l’empreinte DSA :
HostKey /etc/ssh/ssh_host_dsa_key
- Modification pour ne permettre qu’au groupe sshusers de se connecter en ssh :
AllowGroups ssh.main sftp.main ssh.app sftp.app admins root
devient
AllowGroups sshusers
- Modification de la durée de connexion avant d’entrer les identifiants (on la réduit vu qu’on veut utiliser une clé) :
LoginGraceTime 120
devient
LoginGraceTime 20
- Ajout d’un paramètre de nombre maximum d’essais avant de se faire jeter par le serveur (puisqu’on utilise une clé qui ne peut se tromper, on peut la mettre à 1) :
MaxAuthTries 1
- Ajout d’un paramètre pour activer la connexion par clé et le chemin de cette clé :
AuthorizedKeysFile .ssh/authorized_keys
- Désactivation de toutes les autres méthodes d’authentification :
RSAAuthentication no
UsePAM no
KerberosAuthentication no
GSSAPIAuthentication no
PasswordAuthentication no
- Ajout d’un paramètre pour définir un quota de connexions non authentifiées simultanées :
MaxStartups 2
- Relancer le serveur et se reconnecter :
/etc/init.d/ssh restart
ssh -p1234 korben@monserveur.com
- Hashage du fichier known_hosts :
ssh-keygen -H -f ~/.ssh/known_hosts
Remarque 3 : le tuto ne dit pas sur quelle machine (pc portable ou serveur yunohost) faire ce hachage. Par conséquent je l’ai fait sur les deux, est-ce correct ?