Connexion à distance à sa session via un serveur SSH et explorer ses fichiers.
Voici un mini tutoriel pour installer et configurer un serveur ssh qui vous permettra de vous connecter à distance sur votre session Ubuntu ou sur la plupart des distributions Linux actuelles. Il n’est bien sur pas question ici de vous décrire l’emploi complet du protocole SSH avec le système de clef publiques et privées, mais plutôt de vous permettre de vous connecter à votre session facilement et de manière sécurisée avec authentification par mot de passe.
Attention, je vous conseille l’emploi d’un mot de passe de session sur, évitez les mots de passes simples, le serveur ssh donne un accès complet à votre session et est ouvert (accessible) par le réseau.
Le routeur:
Pour commencer il va vous falloir ouvrir un port dans votre routeur, le port ssh par défaut étant le port 22. Rendez vous dans l’interface de configuration de votre routeur (Box), ouvrez votre navigateur et tapez l’adresse 192.168.0.1 (ou sur votre interface de gestion free si vous êtes chez free, puis « configurer mon routeur »), bref ouvrez le port 22…
Installer Open Ssh server:
Sur Ubuntu le Client ssh est déja installé, il vous faut donc installer le serveur ssh. Ouvrez la logithéque et tapez « ssh » dans la barre de recherche. Installez le paquet « Secure shell client and server (metapackage) ». Vous avez presque fini, non, je blague…
Le fichier de configuration:
Comme tous les serveurs, le serveur ssh se configure par une « fichier de conf ». Il va donc vous falloir éditer (ouvrir) ce fichier. Connaissez vous la commande « gedit » ? Non? et bien c’est assez simple…ouvrez un terminal (faites une recherche de terminal dans l’outil de recherche en haut de la barre de gauche). Dans ce terminal il va vous falloir lancer une commande, aie, je sens que vous avez peur…pas de soucis…
Tapez la commande: sudo gedit /etc/ssh/sshd_config
Votre mot de passe d’utilisateur vous est demandé pour éditer un fichier systéme, normal sécurité oblige. Explication de la commande: « sudo » pour prendre des droits de superutilisateur, « gedit » pour utiliser l’éditeur de texte du même nom, /etc/ssh/sshd_config étant le chemin du fichier…
Et là, miracle, le fichier est édité.
Configuration du fichier sshd_config:
Vous pouvez remplacer le contenu du fichier par ce qui suit, attention vous pourrez vous authentifier par mot de passe ce qui n’est pas la méthode la plus sure. Je répète donc, vous devez utiliser un mot de passe de session « fort ». Cependant le protocole ssh est sur et il sera assez difficile de faire une attaque sur vote mot de passe s’il est assez compliqué. Voici le contenu du fichier…
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don’t read the user’s ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don’t trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
MaxStartups 10:30:60
Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to ‘yes’ to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of « PermitRootLogin without-password ».
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to ‘no’.
UsePAM yes
Cette configuration permet théoriquement d’afficher des fenêtres de logiciels à distance (ligne:X11Forwarding yes
X11DisplayOffset 10) mais attention n’espérez pas des miracles, vous ne pourrez pas faire du streaming vidéo…, ceci étant du à la faible bande passante attribuée par votre fournisseur, vous pourrez cependant afficher firefox à distance par exemple… Cette configuration ne permet pas la connexion en tant que super-utilisateur (trop dangereux) mais en tant qu’utilisateur simple (vous devrez taper sudo pour faire des bêtises….): ligne: Password authentification yes. Les utilisateurs tentant de se connecter trop de fois sont bannis ligne: MaxStartups 10:30:60
Banner /etc/issue.net
Se connecter à distance…enfin!
Nous y voila, vous pouvez vous connecter à distance, votre serveur tourne et vous avez ouvert le port 22, le fichier est configuré pour l’authentification par mot de passe, tout y est.
- Connexion en Local (à l’intérieur de votre réseau local, à la maison quoi…)
Tapez la commande ifconfig dans un terminal et repérez l’adresse IP de votre ordinateur
Repérez le chiffre après inet adr, ici 192.168.0.1, mais c’est un exemple, et retenez le…Rendez vous sur un autre ordinateur de votre domicile…Ouvrez un terminal sur cette autre machine et tapez: ssh nomdutilisateur@adresseip ou nomdutilisateur est votre identifiant de session et adresseip est l’adresse ip que vous venez de mémoriser, votre mot de passe de session vous est demandé, vous êtes connecté…ceci pourra être très utile pour transférer des fichier sur une tablette android 4.1 et plus en wifi par exemple…
- Connexion depuis l’extérieur de votre domicile
Bien sur vous connaissez l’adresse IP de votre routeur…euh nonon? Ah… Si vous étes chez free, vous avez une adresse IP fixe, très utile pour vous connecter. Sinon vous devrez créer une adresse ip fixe, tutoriel ici le reste de la procédure sera alors le méme, le plus pénible étant d’obtenir une ip fixe…
Une connexion ssh pour quoi faire?
Grace à votre serveur ssh vous pouvez:
- Ouvrir un terminal sur une machine distante et lancer des commandes, lister des dossiers, faire les mises à jour, éteindre la machine…
- Monter un dossier (votre dossier personnel par exemple) comme un disque dur sur votre bureau (de la machine distante) en effet le navigateur de fichier d’Ubuntu supporte le protocole ssh.
Ouvrez votre dossier personnel sur la machine distante puis rendez vous dans « fichier », « se connecter à un serveur » et choisissez le protocole ssh… Le dossier /home dans ce cas se trouvera monté comme une clef usb sur votre bureau, vous pouvez glisser/déposer des fichiers directement sur la machine distante.
- Transférer des fichier sur un terminal Android 4.1 en wifi grâce à un client sftp (Andsftp par exemple). Sftp étant un protocole de transfert de fichier sécurisé par ssh…
Voila, il ne vous reste plus qu’à vous jeter à l’eau…