SSH stands for Secure Shell, and refers to a protocol that allows to remotely control and administrate 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).
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.
If you are installing at home (e.g. on a Raspberry Pi or OLinuXino or old computer):
yunohost.localdoes not work, your need to find out the local IP of the server.
If your server is a remote server (VPS), your provider should have communicated you the IP address of the machine
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.
During the postinstall, you've been asked to choose an administration password. This password becomes the new password for the
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).
The SSH command typically looks like:
# before the postinstall: ssh email@example.com # or after the postinstall: ssh firstname.lastname@example.org
Or using the domain name instead of the IP (more convenient):
ssh email@example.com # or with the special .local domain: ssh firstname.lastname@example.org
If you changed the SSH port, you need to add
-p <portnumber> to the command, e.g.:
ssh -p 2244 email@example.com
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
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 user ssh allow <username>
It is also possible to remove SSH access using the following:
yunohost user ssh disallow <username>
Finally, it is possible to add, delete and list SSH keys, to improve SSH access security, using the commands:
yunohost user ssh add-key <username> <key> yunohost user ssh remove-key <username> <key> yunohost user ssh list-keys <username>
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
A more extensive discussion about security & SSH can be found on the dedicated page.
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 or this one. But be reassured that you don't need to be a CLI expert to start using it !
yunohost command can be used to administrate 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
YunoHost commands usually have this kind of structure :
yunohost app install wordpress --label Webmail ^ ^ ^ ^ | | | | category action argument options
Don't hesitate to browse and ask for more information about a given category or action using the the
--help option. For instance, those commands :
yunohost --help yunohost user --help 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.
Found errors? Think you can improve this documentation? Simply click the Edit link at the top of the page, and then the icon on Github to suggest changes.