From e0bb109285180b75bca39d89241246786e3f8d32 Mon Sep 17 00:00:00 2001 From: ljf Date: Wed, 14 Jul 2021 19:29:32 +0200 Subject: [PATCH] [fix] Missing or incorrect info in SSH page --- .../06.overview/04.commandline/ssh.fr.md | 121 ++++++++++++----- .../06.overview/04.commandline/ssh.md | 125 ++++++++++++------ 2 files changed, 175 insertions(+), 71 deletions(-) diff --git a/pages/01.administrate/06.overview/04.commandline/ssh.fr.md b/pages/01.administrate/06.overview/04.commandline/ssh.fr.md index 13121fb7..61378aa5 100644 --- a/pages/01.administrate/06.overview/04.commandline/ssh.fr.md +++ b/pages/01.administrate/06.overview/04.commandline/ssh.fr.md @@ -17,7 +17,25 @@ page-toc: L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur comparé 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. -## Quelle adresse utiliser pour se connecter au serveur ? +## Comment se connecter ? +### Identifiant à utiliser + +[ui-tabs position="top-left" active="0" theme="lite"] +[ui-tab title="Avant la configuration initiale (post-installation)"] + +- Si vous faites une **installation à la maison**, les identifiants par défaut sont login: `root`, mot de passe: `yunohost` (ou `1234` si vous partez d'une image armbian) +- Si vous faites une **installation sur un serveur distant (VPS)**, votre fournisseur devrait vous avoir communiqué le login et mot de passe (ou vous proposer de configurer une clef SSH) + +[/ui-tab] +[ui-tab title="Après"] + +Durant la postinstallation, vous avez défini un mot de passe d'administration. C'est ce mot de passe qui devient le nouveau mot de passe pour les utilisateurs `root` et `admin`. De plus, **la connexion en SSH avec l'utilisateur `root` est désactivée et il vous faut utiliser l'utilisateur `admin` !**. L'exception à cette règle est qu'il reste possible de se logger en root *depuis le réseau local - ou depuis une console en direct sur la machine* (ce qui peut être utile dans l'éventualité ou le serveur LDAP est inactif et l'utilisateur admin ne fonctionne plus). + +!!! Si vous êtes connecté en tant qu'`admin` 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`. +[/ui-tab] +[/ui-tabs] + +### Adresse à utiliser Si vous hébergez votre serveur **à la maison** (par ex. Raspberry Pi ou OLinuXino ou vieil ordinateur) - vous devriez pouvoir vous connecter à la machine en utilisant `yunohost.local`. @@ -28,57 +46,57 @@ S'il s'agit d'une machine distante (VPS), votre fournisseur devrait vous avoir c 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. -## Identifiants pour se connecter +### Se connecter -### AVANT la post-installation - -- Si vous faites une **installation à la maison**, les identifiants par défaut sont login: `root`, mot de passe: `yunohost` -- Si vous faites une **installation sur un serveur distant (VPS)**, votre fournisseur devrait vous avoir communiqué le login et mot de passe (ou vous proposer de configurer une clef SSH) - -### APRÈS la post-installation - -Durant la postinstallation, vous avez défini un mot de passe d'administration. C'est ce mot de passe qui devient le nouveau mot de passe pour les utilisateurs `root` et `admin`. De plus, **la connexion en SSH avec l'utilisateur `root` est désactivée et il vous faut utiliser l'utilisateur `admin` !**. L'exception à cette règle est qu'il reste possible de se logger en root *depuis le réseau local - ou depuis une console en direct sur la machine* (ce qui peut être utile dans l'éventualité ou le serveur LDAP est inactif et l'utilisateur admin ne fonctionne plus). - -## Se connecter - -Une commande SSH ressemble typiquement à : +Ci-dessous quelques exemples de commande SSH typiques : ```bash # avant la postinstall: ssh root@11.22.33.44 -# ou après la postinstall: +# après la postinstall: ssh admin@11.22.33.44 -``` -Ou bien en utilisant le nom de domaine plutôt que l'IP (plus pratique) : - -```bash +# avec le nom de domaine plutôt que l'ip (plus pratique): ssh admin@votre.domaine.tld -# ou avec le nom de domaine spécial yunohost.local: + +# avec le nom de domaine spécial yunohost.local: ssh admin@yunohost.local -``` -Si vous avez changé le port SSH, il faut rajouter l'option `-p ` à la commande, par ex. : - -```bash +# si vous avez changé le numéro de port pour SSH ssh -p 2244 admin@votre.domaine.tld ``` -!!! Si vous êtes connecté en tant qu'`admin` 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`. +!!! `fail2ban` bannira votre IP pour 10 minutes si vous échouez plus de 10 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur [Fail2Ban](/fail2ban). -## Quels utilisateurs ? +## Autoriser un utilisateur YunoHost standard -Par défaut, seulement l'utilisateur `admin` peut se logger en SSH sur une instance YunoHost. +Par défaut, seul l'utilisateur `admin` peut se logger en SSH sur une instance YunoHost. -Les utilisateurs YunoHost créés via l'interface d'administration sont gérés par la base de donnée LDAP. Par défaut, ils ne peuvent pas se connecter en SSH pour des raisons de sécurité. Si vous avez absolument besoin qu'un utilisateur dispose d'un accès SSH, vous pouvez utiliser la commande : +Les utilisateurs YunoHost créés via l'interface d'administration sont gérés par la base de donnée LDAP. Par défaut, ils ne peuvent pas se connecter en SSH pour des raisons de sécurité. Via le système des permissions il est possible d'autoriser la connexion en SFTP ou si c'est vraiment nécessaire en SSH. +[ui-tabs position="top-left" active="0" theme="lite"] +[ui-tab title="A partir de l'interface web"] +Se rendre dans `Utilisateurs > Gérer les groupes et les autorisations` + +A 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é. +[/ui-tab] +[ui-tab title="A partir de la ligne de commande"] +Pour autoriser un utilisateur ou un groupe à accéder en SFTP ou en SSH: ```bash -yunohost user ssh allow +# SFTP +yunohost user permission add sftp +# SSH +yunohost user permission add ssh ``` -De même, il est possible de supprimer l'accès SSH à un utilisateur avec la commande : +Pour enlever la permission: ```bash -yunohost user ssh disallow +# SFTP +yunohost user permission remove sftp +# SSH +yunohost user permission remove ssh ``` Enfin, il est possible d'ajouter, de supprimer et de lister des clés SSH, pour améliorer la sécurité de l'accès SSH, avec les commandes : @@ -87,18 +105,21 @@ yunohost user ssh add-key yunohost user ssh remove-key yunohost user ssh list-keys ``` +[/ui-tab] +[/ui-tabs] ## SSH et sécurité -N.B. : `fail2ban` bannira votre IP pour 10 minutes si vous échouez plus de 5 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur [Fail2Ban](/fail2ban). Une discussion plus complète de la sécurité et de SSH peut être trouvée sur [la page dédiée](/security). -## La ligne de commande Yunohost +## La ligne de commande !!! 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](https://doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande) ou [celui-ci (en)](http://linuxcommand.org/). Mais soyez rassuré qu'il n'y a pas besoin d'être un expert pour commencer à l'utiliser ! -La commande `yunohost` peut être utilisée pour administrer votre serveur ou réaliser les mêmes actions que celles disponibles sur la webadmin. Elle doit être lancée en depuis l'utilisateur `root`, ou bien depuis l'utilisateur `admin` en précédant la commande de `sudo`. (ProTip™ : il est possible de devenir `root` via la commande `sudo su` en tant qu'`admin`.) +### La commande `yunohost` + +La commande `yunohost` peut être utilisée pour administrer votre serveur ou réaliser les mêmes actions que celles disponibles sur la webadmin. Elle doit être lancée depuis l'utilisateur `root`, ou bien depuis l'utilisateur `admin` en précédant la commande de `sudo`. (ProTip™ : il est possible de devenir `root` via la commande `sudo su` en tant qu'`admin`.) Les commandes YunoHost ont ce type de structure : @@ -118,3 +139,35 @@ 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: +```bash +yunohost tools diagnosis | yunopaste +``` + +### La commande `ynh-vpnclient-loadcubefile.sh` +Cette commande n'est disponible que si vous avez l'application `VPN Client` installée. Vous pouvez vous en servir pour charger un nouveau .cube dans le cas où vous ne parvenez pas à aller sur l'interface de `VPN Client` pour le faire. + +```bash +ynh-vpnclient-loadcubefile.sh -u -p -c .cube +``` + +### Quelques commandes utiles + +Si votre interface web d'administration indique que l'API est injoignable, essayez de démarrer `yunohost-api`: +```bash +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 : +```bash +systemctl restart slapd +``` + +Si vous avez des configurations modifiées manuellement et souhaitez connaitre les modifications : +```bash +yunohost tools regen-conf --with-diff --dry-run +``` diff --git a/pages/01.administrate/06.overview/04.commandline/ssh.md b/pages/01.administrate/06.overview/04.commandline/ssh.md index 8e3b37c4..e55c249e 100644 --- a/pages/01.administrate/06.overview/04.commandline/ssh.md +++ b/pages/01.administrate/06.overview/04.commandline/ssh.md @@ -17,7 +17,26 @@ page-toc: The command line interface (CLI) is, in the computer world, the original (and more technical) way of interacting with a computer compared to graphical interface. Command line interfaces are generally said to be more complete, powerful or efficient than a graphical interface, though also more difficult to learn. -## What address to use to connect to your server? +## How to connect +### Login credentials + + +[ui-tabs position="top-left" active="0" theme="lite"] +[ui-tab title="Before running the initial configuration (post-installation)"] + +- 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 you the login and password (or allowed you to configure an SSH key) + +[/ui-tab] +[ui-tab title="After"] + +During the postinstall, you've been asked to choose an administration password. This password becomes the new password for the `root` and `admin` users. Additionally, **the `root` SSH login becomes disabled after the postinstall and you should log in using the `admin` user !**. 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 `admin` user is unusable). + +!!! If you connected as `admin` and would like to become `root` for convenience (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su` or `sudo -i`. +[/ui-tab] +[/ui-tabs] + +### Address to use If you are **installing at home** (e.g. on a Raspberry Pi or OLinuXino or old computer): - you should be able to connect to your server using `yunohost.local`. @@ -30,19 +49,7 @@ If your server is a remote server (VPS), your provider should have communicated In any cases, if you already configured a domain name pointing to the appropriate IP, it's much better to use `yourdomain.tld` instead of the IP address. -## Login credentials - -#### BEFORE running the post-installation - -- If you are **installing at home**, the default credentials are login: `root` and password: `yunohost` -- If you are **installing a remote server (VPS)**, your provider should have communicated you the login and password (or allowed you to configure an SSH key) - -#### AFTER running the post-installation - -During the postinstall, you've been asked to choose an administration password. This password becomes the new password for the `root` and `admin` users. Additionally, **the `root` SSH login becomes disabled after the postinstall and you should log in using the `admin` user !**. 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 `admin` user is unusable). - - -## Connecting +### Connecting The SSH command typically looks like: @@ -52,58 +59,70 @@ ssh root@11.22.33.44 # or after the postinstall: ssh admin@11.22.33.44 -``` -Or using the domain name instead of the IP (more convenient): +# avec le nom de domaine plutôt que l'ip (plus pratique): +ssh admin@votre.domaine.tld -```bash -ssh admin@your.domain.tld -# or with the special .local domain: +# using the domain name instead of the IP (more convenient) ssh admin@yunohost.local + +# if you changed the SSH port +ssh -p 2244 admin@votre.domaine.tld ``` -If you changed the SSH port, you need to add `-p ` to the command, e.g.: - -```bash -ssh -p 2244 admin@your.domain.tld -``` - -!!! If you connected as `admin` and would like to become `root` for convenience (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su` or `sudo -i`. +N.B. : `fail2ban` will ban your IP for 10 minutes if you perform 10 failed login attempts. If you need to unban the IP, have a look at the page about [Fail2Ban](/fail2ban) ## Which other users may connect to the server? By default, only the `admin` user can log in to YunoHost SSH server. -YunoHost's users created via the administration interface are managed by the LDAP directory. By default, they can't connect via SSH for security reasons. If you want some users to have SSH access enabled, use the command: +YunoHost's users created via the administration interface are managed by the LDAP directory. By default, they can't connect via SSH for security reasons. Via the permissions system it is possible to allow the connection in SFTP or if it is really necessary in SSH. -```bash -yunohost user ssh allow +[ui-tabs position="top-left" active="0" theme="lite"] +[ui-tab title="From the web interface"] +Go to `Users > Manage groups and permissions`. + +From here, you can add SFTP or SSH permissions to any user or group. + +If you want to add an SSH public key to the user, you have to do it from the command line, as the web interface does not yet offer this feature. +[/ui-tab] +[ui-tab title="From the command line"] +To allow a user or group to access via SFTP or SSH: +``bash +# SFTP +yunohost user permission add sftp +# SSH +yunohost user permission add ssh ``` -It is also possible to remove SSH access using the following: - +To remove permission: ```bash -yunohost user ssh disallow +# SFTP +yunohost user permission remove sftp +# SSH +yunohost user permission remove ssh ``` Finally, it is possible to add, delete and list SSH keys, to improve SSH access security, using the commands: - -```bash +``bash yunohost user ssh add-key yunohost user ssh remove-key yunohost user ssh list-keys ``` +[/ui-tab] +[/ui-tabs] + ## Security and SSH -N.B. : `fail2ban` will ban your IP for 10 minutes if you perform 5 failed login attempts. If you need to unban the IP, have a look at the page about [Fail2Ban](/fail2ban) - A more extensive discussion about security & SSH can be found on the [dedicated page](/security). -## Yunohost command line +## The command line !!! Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it ! +### The `yunohost` command + 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 the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`). YunoHost commands usually have this kind of structure : @@ -124,3 +143,35 @@ yunohost user create --help ``` will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages. + +### The `yunopaste` command +This command allow you to share with an other person the output of a command. + +Example: +```bash +yunohost tools diagnosis | yunopaste +``` + +### The `ynh-vpnclient-loadcubefile.sh` command +This command is only available if you have the `VPN Client` application installed. You can use it to load a new .cube in case you can't get to the VPN Client interface to do so. + +```bash +ynh-vpnclient-loadcubefile.sh -u -p -c .cube +``` + +### Some useful commands + +If your administration web interface indicates that the API is unreachable, try starting `yunohost-api`: +```bash +systemctl start yunohost-api +``` + +If you can no longer connect with the user `admin` via SSH and via the web interface, the `slapd` service may be down, try restarting it: +```bash +systemctl restart slapd +``` + +If you have manually modified configurations and want to know the changes: +```bash +yunohost tools regen-conf --with-diff --dry-run +```