44 votes

Comment utiliser SSH (commandes ssh & rsync) ?

Comment puis-je me connecter en SSH à un serveur distant pour pouvoir parcourir les fichiers et les modifier ? J'ai un nom d'utilisateur et un mot de passe à utiliser.

51voto

Bob Points 940

SSH vient par défaut dans toutes les versions d'Ubuntu, donc vous économisez du temps en ne devant pas l'installer (+1 pour l'avoir déjà là ;) )

Sauf bien sûr dans le cas où vous voulez un serveur SSH pour votre serveur Ubuntu. Dans ce cas, vous devriez

sudo apt-get install openssh-server 

ce qui devrait rendre votre ordinateur/serveur prêt à être un serveur ssh.

Pour l'utiliser, c'est assez facile:

ssh UTILISATEUR@SITE par exemple si mon nom d'utilisateur est cyrex et le site est ubuntu.com alors vous feriez ceci:

ssh cyrex@ubuntu.com

Maintenant disons que vous voulez copier un fichier appelé bubblegum.txt de votre ordinateur vers votre site ubuntu et que vous voulez laisser ce fichier dans le dossier /var/www sur le site ubuntu. Vous pouvez le faire (en supposant que votre utilisateur ait assez de permissions sur le site ubuntu) en utilisant le Frère de SSH, SCP (qui vient aussi par défaut dans Ubuntu):

scp bubblegum.txt cyrex@ubuntu.com:/var/www 

Remarquez le : entre l'UTILISATEUR@SITE et le dossier où vous voulez le copier. C'est lui qui sépare les deux éléments.

Maintenant imaginons que vous téléchargiez un fichier énorme avec scp et puis le pire arrive, le monde explose. Comment pouvez-vous continuer à télécharger ce fichier sur le serveur. Alors vous avez le grand frère de SCP, rsync (Vient par défaut dans Ubuntu). De plusieurs façons, scp et rsync font la même chose mais voici quelques grandes différences entre eux:

  • rsync peut télécharger des fichiers partiels laissés par rsync ou scp après une déconnexion ou une domination mondiale.
  • rsync peut montrer la progression beaucoup mieux que scp
  • rsync peut optimiser le téléchargement de telle manière que vous pouvez réellement économiser des secondes ou des minutes sur le téléchargement. Il montre aussi à la fin du téléchargement combien vous avez économisé.

Quoi qu'il en soit, dans le cas où scp n'a pas pu télécharger le fichier entier, c'est là que rsync intervient pour vous sauver. (Merci à Marco Ceppi pour le conseil. Votez pour son commentaire si vous aimez les chats... et/ou les chiens)

Imaginons que vous avez effectué le téléchargement mentionné ci-dessus avec scp et qu'il en est à 60%. Comment pouvez-vous continuer à 60% sans perdre la valeur de votre temps pour le téléchargement. Vous feriez ceci:

rsync --progress --partial bubblegum.txt cyrex@ubuntu.com:/var/www  

Cela dit à rsync de montrer la progression de manière lisible avec le drapeau --progress. Cela dit également à rsync de vérifier et de continuer là où le fichier bubblegum.txt s'est arrêté avec le drapeau --partial. Vous pouvez aussi simplifier la quantité à écrire avec le paramètre -P qui est le même que --progress et --partial, donc le code ci-dessus ressemblerait à ceci:

rsync -P bubblegum.txt cyrex@ubuntu.com:/var/www  

Vous pouvez même CTRL+C le téléchargement et le reprendre en effectuant la commande de rsync ci-dessus. Très cool d'avoir la capacité de reprendre quelque chose à tout moment, autant de fois que nécessaire.

Pour plus d'informations sur rsync qui vient par défaut avec Ubuntu, vous pouvez taper les commandes terminal suivantes:

man rsync  
info rsync  
rsync --help

Maintenant pour spécifier un port pour SSH. Pour le spécifier, vous pouvez le faire comme ceci:

ssh cyrex@ubuntu.com -p PORT. Par exemple: ssh cyrex@ubuntu.com -p 1234 pour lui dire d'utiliser le port 1234 pour le service SSH. Cela doit être configuré d'abord dans le serveur pour que cela fonctionne.

Pour le configurer, ouvrez simplement dans le serveur le fichier ssh_config comme ceci: nano /etc/ssh/ssh_config et changez la ligne qui dit # port 22 vers un autre port. N'oubliez pas de supprimer également le commentaire de cette ligne. Elle devrait ressembler à ceci: port 1234 dans le cas de l'exemple ci-dessus.

Maintenant redémarrez simplement le service ssh dans le serveur et vous avez terminé. Pour redémarrer le service, faites simplement ceci:

sudo restart ssh

ou

sudo /etc/init.d/ssh restart

REMARQUE - Vous pouvez également utiliser SSH à partir d'outils GUI comme filezilla qui offrent l'option d'utiliser ssh au lieu de ftp. SSH peut également être accessible depuis le menu Ubuntu:

entrer la description de l'image ici

qui donne accès à plusieurs options, y compris partage Windows, SSH et FTP:

entrer la description de l'image ici

Pour plus d'informations sur SSH, vous pouvez utiliser l'une des commandes suivantes dans la console de votre Ubuntu:

man ssh  
info ssh  
ssh --help

24voto

jamesadney Points 824

Si vous souhaitez parcourir le serveur à travers Nautilus comme vous le faites avec les fichiers sur votre machine locale :

  1. Ouvrez Nautilus ("Dossier personnel")

  2. Allez dans "Fichier" --> "Se connecter au serveur"

    Se connecter au serveur

  3. Sélectionnez "SSH" sous "Type de service"

  4. Entrez l'adresse IP ou le domaine sous "Serveur"

    Sélectionnez SSH

  5. Ajoutez votre nom d'utilisateur et cochez "Ajouter un signet" si vous souhaitez que l'emplacement soit enregistré dans vos signets.

Le dossier devrait s'ouvrir directement pour vous.

6voto

Matthew Farwell Points 31257

Vous pouvez utiliser sshfs pour monter un répertoire distant sur votre système de fichiers local.

Voir https://help.ubuntu.com/community/SSHFS:

Utilisation en ligne de commande

Maintenant, en supposant que vous avez un serveur SSH en cours d'exécution sur une machine distante, exécutez simplement la commande SSHFS pour monter le répertoire distant. Dans cet exemple, le répertoire distant est /projects sur l'hôte distant far. Le point de montage local est ~/far_projects.

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

Pour démonter,

fusermount -u ~/far_projects

Pour l'ajouter à votre /etc/fstab,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

Notez que vous devez changer $USER par votre nom d'utilisateur lorsque vous modifiez fstab, mais ce n'est pas nécessaire lorsque vous tapez des commandes (le shell le fait pour vous dans ce cas).

4voto

Doug Points 51

En supposant que le serveur ssh soit déjà configuré, ouvrez un terminal et tapez :

ssh nom_utilisateur@hostname

Vous serez invité à entrer votre mot de passe ; entrez simplement. Si vous avez besoin d'un numéro de port, ajoutez -p NUMPORT.

2voto

Larry Miller Points 215

Si vous pouvez utiliser Vim, Pico, ou autre, vous pouvez utiliser le terminal:

ssh MYUSER@mysite.com

Entrez votre mot de passe, et vous y êtes. Ensuite, c'est comme un terminal normal, sauf que vous n'avez pas d'interface graphique.

Notez que vous pouvez ajouter l'option '-X', et si votre serveur a un serveur X configuré, vous pouvez exécuter des programmes en interface graphique. Il vous suffit de taper leur nom si vous avez ajouté -X et cela lancera une fenêtre graphique.

Maintenant, vous voudrez probablement configurer une connexion sans mot de passe. Si vous n'avez pas encore de clé, tapez ssh-keygen et appuyez simplement sur Entrée pour toutes les valeurs par défaut. Ensuite, faites ssh-copy-id MYUSER@mysite.com. Une fois que c'est fait, il vous suffit de taper ssh MYUSER@mysite.com et vous n'aurez pas besoin d'entrer votre mot de passe!

Si votre nom d'utilisateur est le même que celui de votre ordinateur portable, vous n'avez pas besoin de MYUSER@. Vous pouvez simplement faire ssh mysite.com. Vous pouvez également utiliser l'option -l MYUSER à la place de MYUSER@

Si vous voulez une interface graphique, Nautilus peut le faire. Fichier -> Se connecter au serveur -> [choisir 'SSH', puis remplir les détails de connexion] -> Connecter.

Si vous voulez simplement copier un seul fichier, utilisez scp [copie sécurisée].
scp MYUSER@mysite.com:chemin/vers/fichier.dat ./

Cela copie le fichier "~/chemin/vers/fichier.dat" dans votre répertoire actuel. Notez que si vous n'avez pas de slash ou de tilde après le :, cela agira comme si vous étiez dans votre répertoire personnel [~/]. Si vous voulez téléverser, scp ./fichier_local.dat MYUSER@mysite.com: Cela le placera dans votre répertoire personnel.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X