Aller au contenu principal

🛠️ SSH et la ligne de commande

Qu’est-ce que SSH ?

SSH stands for Secure Shell, and refers to a protocol that allows you to remotely control and administer a machine using the command line interface (CLI). It is available by default in any terminal on GNU/Linux and macOS. On Windows, you may want to use MobaXterm (after launching it, click on Session then SSH).

L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur, comparée aux interfaces graphiques. La ligne de commande est généralement considérée comme plus complète, puissante et efficace que les interfaces graphiques, bien que plus difficile à apprendre.

Comment se connecter

Identifiants avant la postinstall

  • If you are installing at home, the default credentials are login: root and password: yunohost (or 1234 if you flashed an armbian image)
  • If you are installing a remote server (VPS), your provider should have communicated the login and password to you (or allowed you to configure an SSH key)

Identifiants après la postinstall

During the postinstall, you've been asked to choose a user and an administration password. This user account allows you to connect to the server through SSH. The password also becomes the new password for the root user. Additionally, the root SSH login becomes disabled after the postinstall and you should log in using the user account created during postinstall !. The only exception is that you may still be able to login using root from the local network - or from a direct console on the server (this is to cover the event where the LDAP server is broken and the users who are members of the admins group are unusable).

astuce

Si vous êtes connecté en tant avec le compte d'administration et souhaitez devenir root pour plus de confort (par exemple, ne pas avoir à taper sudo à chaque commande), vous pouvez devenir root en tapant sudo su ou sudo -i.

Adresse à utiliser

Si vous hébergez votre serveur à la maison (par ex. Raspberry Pi ou OLinuXino ou vieil ordinateur)

  • vous devriez pouvoir vous connecter au serveur en utilisant yunohost.local (ou yunohost-2.local, en fonction de si vous avez d'autres serveur yunohost sur le même réseau local).
  • si yunohost.local ne fonctionne pas, il vous faut trouver l'IP locale du serveur.
  • si vous avez installé un serveur à la maison et que vous essayer de vous connecter depuis l'extérieur du réseau local, assurez-vous que le port 22 est correctement redirigé vers votre serveur.

If your server is a remote server (VPS), your provider should have provided you with the IP address of the machine

Dans tous les cas, si vous avez déjà configuré un nom de domaine qui pointe sur l'IP appropriée, il est plus pratique d'utiliser votre.domaine.tld plutôt que l'adresse IP.

Se connecter

Ci-dessous quelques exemples de commande SSH typiques :

# before the postinstall:
ssh root@11.22.33.44

# or after the postinstall:
ssh username@11.22.33.44

# using the domain name instead of the IP (more convenient)
ssh username@your.domain.tld

# using the local domain name instead of the IP (for local access)
ssh username@yunohost.local

# if you changed the SSH port
ssh -p 2244 username@your.domain.tld
remarque

fail2ban bannira votre IP pendant 10 minutes si vous échouez plus de 10 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur Fail2Ban.

Quels autres utilisateur·ice·s peuvent se connecter au serveur ?

Par défaut, seuls les comptes dans le groupe admins peuvent se connecter en SSH et SFTP sur une instance YunoHost. Les comptes hors de ce groupe ne peuvent se connecter pour des raisons de sécurité. Avec le système de permissions il est possible d'autoriser la connexion en SFTP ou si c'est vraiment nécessaire en SSH.

attention

Faites attention à qui vous donnez accès à SSH. Cela augmente encore plus la surface d'attaque disponible pour un utilisateur malveillant.

Se rendre dans Utilisateurs > Gérer les groupes et les autorisations

À partir de là, il est possible d'ajouter les permissions SFTP ou SSH à un utilisateur ou un groupe au choix.

Si vous souhaitez ajouter une clé publique SSH à l'utilisateur, vous devez le faire en ligne de commande, l'interface web ne proposant pas encore cette fonctionnalité.

SSH et sécurité

Une discussion plus complète sur la sécurité et sur SSH peut être trouvée sur la page dédiée.

La ligne de commande

info

Fournir un tutoriel complet sur la ligne de commande est bien au-delà du cadre de la documentation de YunoHost : pour cela, référez-vous à des tutoriels comme celui-ci ou celui-ci (en). Mais soyez rassuré, il n'y a pas besoin d'être un expert pour commencer à l'utiliser !

La commande yunohost

The yunohost command can be used to administer your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the root user or from a user who is a member of the admins group by preceding the command with sudo. (ProTip™: you can become root with the command sudo su as a user who is a member of the admins group).

Les commandes YunoHost ont ce type de structure :

yunohost app install wordpress --label Webmail
^ ^ ^ ^
| | | |
category action argument options

N'hésitez pas à naviguer et demander des informations à propos d'une catégorie ou action donnée via l'option --help. Par exemple, ces commandes :

yunohost --help
yunohost user --help
yunohost user create --help

vont successivement lister toutes les catégories disponibles, puis les actions de la catégorie user, puis expliquer comment utiliser l'action user create. Vous devriez remarquer que l'arbre des commandes YunoHost suit une structure similaire aux pages de la webadmin.

La commande yunopaste

Cette commande est utile lorsque vous voulez communiquer à une autre personne le retour d'une commande.

Exemple :

tail -n 100 /var/log/mail.info | yunopaste

The ynh-vpnclient-loadcubefile.sh command

Cette commande est seulement disponible et pertinente dans un contexte où l'app VPN Client est installée. Vous pouvez l'utiliser pour charger un nouveau .cube si vous ne pouvez pas accéder à l'interface de VPN Client pour le faire.

ynh-vpnclient-loadcubefile.sh -u <username> -p <password> -c <path>.cube

Quelques commandes utiles

Si votre interface web d'administration indique que l'API est injoignable, essayez de démarrer yunohost-api :

systemctl start yunohost-api

Si vous ne parvenez plus à vous connecter avec l'utilisateur admin via SSH et via l'interface web, le service slapd est peut-être éteint, essayez de le redémarrer :

systemctl restart slapd

Si vous avez des configurations modifiées manuellement et souhaitez connaître les modifications :

yunohost tools regen-conf --with-diff --dry-run