web-dev-qa-db-fra.com

Comment utiliser SSH (commandes ssh & rsync)?

Comment puis-je utiliser SSH avec un serveur distant pour pouvoir parcourir les fichiers et les éditer? J'ai un nom d'utilisateur et un mot de passe à utiliser.

44
el_pup_le

SSH vient par défaut dans toutes les versions d'Ubuntu, vous éviterez ainsi de 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 voudriez

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 USER@SITE par exemple si mon nom d'utilisateur est cyrex et que le site est buntu.com alors vous feriez ceci:

ssh [email protected]

Supposons maintenant que vous souhaitiez copier un fichier appelé bubblegum.txt de votre ordinateur sur votre site Ubuntu et que vous souhaitiez laisser ce fichier dans le dossier /var/www du site ubuntu. vous pouvez le faire (en supposant que votre utilisateur dispose d'autorisations suffisantes sur le site Ubuntu) en utilisant le frère de SSH, SCP (qui est également fourni par défaut dans Ubuntu):

scp bubblegum.txt [email protected]:/var/www 

Notez le : entre USER @ SITE et le dossier dans lequel vous souhaitez le copier. C'est celui qui sépare les deux éléments.

Maintenant, disons que vous téléchargez un très gros fichier avec scp et que le pire arrive, le monde explose. Comment pouvez-vous continuer à télécharger ce fichier sur le serveur? Ensuite, vous avez le grand frère de SCP, rsync (est fourni par défaut dans Ubuntu). À bien des égards, scp et rsync font la même chose, mais il existe de 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 du monde.
  • rsync peut montrer les progrès beaucoup mieux que scp
  • rsync peut optimiser le téléchargement de telle sorte que vous puissiez réellement économiser des secondes ou des minutes. Il indique également à la fin du téléchargement combien vous avez économisé.

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

Disons que vous avez fait la mention de téléchargement ci-dessus de scp et qu'elle a atteint 60%. Comment pouvez-vous continuer dans ces 60% sans perdre votre temps en téléchargement? Vous feriez ceci:

rsync --progress --partial bubblegum.txt [email protected]:/var/www  

Cela indique à rsync de montrer les progrès de manière lisible pour l’homme avec le drapeau --progress. Il demande également à rsync de vérifier et de continuer à partir de l’endroit où se trouve le fichier bubblegum.txt avec le drapeau --partial. Vous pouvez également simplifier le montant à écrire avec le paramètre -P qui est identique à --progress et à --partial, de sorte que ce qui précède ressemble à ceci:

rsync -P bubblegum.txt [email protected]:/var/www  

Vous pouvez même CTRL+C l'envoyer et le reprendre en exécutant la commande de rsync ci-dessus. Très cool d'avoir la possibilité de reprendre quelque chose n'importe quand, à tout moment.

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

man rsync  
info rsync  
rsync --help

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

ssh [email protected] -p PORT. Par exemple: ssh [email protected] -p 1234 pour lui dire d’utiliser le port 1234 pour le service SSH. Cela doit d'abord être configuré sur le serveur pour que cela fonctionne.

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

Maintenant, redémarrez le service SSH sur le serveur et vous avez terminé. Pour redémarrer le service, procédez comme suit:

Sudo restart ssh

ou

Sudo /etc/init.d/ssh restart

NOTE - Vous pouvez également utiliser SSH à partir d’outils graphiques tels que filezilla qui offrent la possibilité d’utiliser ssh au lieu de ftp. ssh est également accessible depuis le menu Ubuntu:

enter image description here

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

enter image description here

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

man ssh  
info ssh  
ssh --help
49
Luis Alvarado

Si vous souhaitez parcourir le serveur via Nautilus comme vous le faites avec des fichiers sur votre ordinateur local:

  1. Open Nautilus ("Dossier personnel")
  2. Allez dans "Fichier" -> "Se connecter au serveur"

    Connect to server

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

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

    Select SSH

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

Le dossier devrait s'ouvrir pour vous.

23
jamesadney

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 qu'un serveur SSH s'exécute 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 remplacer votre nom d'utilisateur par $ USER lors de la modification de fstab, mais ce n'est pas nécessaire lorsque vous tapez des commandes (le shell le fait pour vous dans ce cas).

6
Stacey Richards

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

ssh username@hostname

Vous serez invité à entrer votre mot de passe. il suffit d'entrer Si vous avez besoin d'un numéro de port, ajoutez -p PORTNUM.

4
Dang Khoa

Si vous pouvez utiliser Vim, Pico, etc., vous pouvez utiliser le terminal:

ssh [email protected]

Entrez votre mot de passe et vous y êtes. À partir de là, c'est comme un terminal classique, 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 graphiques. Tapez simplement leur nom si vous avez ajouté -X et cela ouvrira 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 afficher toutes les valeurs par défaut. Ensuite, faites ssh-copy-id [email protected]. Une fois que cela est fait, il suffit de taper ssh [email protected] et vous n'avez pas à entrer votre mot de passe!

Si votre nom d'utilisateur est identique à 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 au lieu de MYUSER@

Si vous voulez une interface graphique, Nautilus peut le faire. Fichier -> Connect to Server -> [sélectionnez 'SSH', puis renseignez les informations de connexion] -> Connect.

Si vous souhaitez simplement copier un seul fichier, utilisez scp [copie sécurisée].
scp [email protected]:path/to/file.dat ./

Ceci copie le fichier "~/path/to/file.dat" dans votre répertoire actuel. Notez que si vous n'avez pas de barre oblique ni de tilde après le :, il agira comme si vous vous trouviez dans votre répertoire personnel [~/]. Si vous voulez télécharger, scp ./local_file.dat [email protected]: Cela le mettra dans votre répertoire personnel.

2
Matt

ssh -X -C user@Host nautilus --no-desktop pour passer en mode interface graphique :)

0
morgie