Comment copier des fichiers dune machine à une autre en utilisant ssh

Jutilise une machine Linux (centos), je me suis déjà connecté à lautre système en utilisant ssh. Maintenant, ma question est de savoir comment puis-je copier des fichiers dun système vers un autre système?

Supposons que, dans mon environnement, jai deux systèmes comme System A et System B. Je » m en utilisant System A machine et une autre en utilisant System B machine.

Comment puis-je copier un fichier de System B vers System A? Et copiez un fichier de System A vers System B?

Commentaires

  • Je trouve que scp est souvent une pierre grasse. Si cela répond à vos besoins, essayez ceci linuxjournal.com/article/8904 Il monte le système de fichiers distant localement.
  • @Alan Je pense que vous voulez dire  » encombrant « ? Cumber Stone est une carte Magic 😉
  • quelque peu liée: créer une archive chiffrée de dir/ sur un ordinateur distant en utilisant ssh : tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
  • Si vous avez accès au ftp du serveur distant, nous pouvons également utiliser wget pour télécharger comme $wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to Reference1 Reference2
  • Non dupliquée, la question liée demande spécifiquement de ne pas utiliser scp; pour celui-là, scp est le moyen le plus simple et le plus simple de répondre, donc les mods suppriment le drapeau en double comme si quelquun allait vers un autre, la réponse la plus utile sera manquée.

Réponse

Syntaxe:

scp <source> <destination> 

À copier un fichier de B vers A en étant connecté à B:

scp /path/to/file username@a:/path/to/destination 

Pour copier un fichier de B vers A tout en étant connecté à A:

scp username@b:/path/to/file /path/to/destination 

Commentaires

  • Pour clarifier, vous don ‘ t utilisez scp pour copier un fichier vers ou depuis votre ordinateur local (Système A) lorsque vous êtes connecté à un serveur distant (Système B) avec ssh. scp vous connectera au serveur distant, copiera le fichier, puis vous déconnectera à nouveau en un seul processus, alors lancez-le simplement depuis un shell sur votre machine locale. Cela étant dit, vous pouvez utiliser scp si vous ‘ vous êtes reconnecté au système B via SSH et que vous souhaitez copier des fichiers entre le système B et le système C.
  • @DopeGhoti. Oui, vous pouvez ‘ déplacer des fichiers entre deux ordinateurs distants. La source ou la destination doit être un fichier local. Cependant, si vous vous connectez à une machine distante avec ssh, vous pouvez copier des fichiers entre deux machines distantes sur cette machine ‘ ligne de commande.
  • Aussi, une chose importante à retenir est que vous ne pouvez accéder quà un dossier de la machine cible sur lequel vous avez des autorisations. Si vous essayez de le copier vers une destination sur laquelle l’utilisateur cible n’a pas d’autorisation, copiez d’abord le fichier dans le répertoire de base ou le sous-répertoire de l’utilisateur ‘, puis ssh dans le machine cible et sudo le déplacer vers la destination finale
  • Souvenez-vous de -r (récursif) et -p (préserver les métadonnées système): scp -rp < file1 > < file2 >
  • Oui, utilisez -P pour spécifier le port TCP sur lhôte distant. Cela me surprend à chaque fois, car ssh utilise -p.

Réponse

Au cas où vous auriez besoin dune autre approche.

Installez sshfs. si vous utilisez ubuntu / debian:

sudo apt-get install sshfs 

ou, si vous utilisez centos / rhel:

sudo yum install fuse-sshfs 

ou, sous macOS

brew install sshfs 

Créer un répertoire vide

mkdir /home/user/testdir 

« lier » ou « monter » les deux répertoires

sshfs [email protected]:/remote/dir /home/user/testdir 

« dissocier » les répertoires

fusermount -u /home/user/testdir 

Sous BSD et macOS, pour démonter le système de fichiers:

umount mountpoint 

ou

diskutil unmount mountpoint 

Pour en savoir plus, cliquez ici, linuxjournal.com libfuse / sshfs

Commentaires

  • La question indique spécifiquement que le système dexploitation en question est CentOS; pas dérivé de Debian. apt-get est un Debianisme; le gestionnaire de packages correct serait yum ou, pour les versions vraiment anciennes de CentOS, up2date ou rpm.
  • +1 la réponse à cette question est peut-être hors contexte, mais cela ma quand même aidé, et pour autant que je sache, dautres aussi.
  • Sans rapport, mais ça ‘ une réponse dun million de dollars xD
  • Si je comprends bien, cela donne ACCÈS aux fichiers distants, mais ne les COPIE pas?
  • @ ToolmakerSteve vous ‘ avez parfaitement raison: il crée un faux répertoire (montage), afin que vous puissiez utiliser tous vos outils préférés pour copier ou déplacer des choses: cp, mv, rm, rsync, unison … La commande scp ne pourrait copier que des fichiers.

Réponse

Parfois, vous devez avoir de la fantaisie avec tar:

tar -C / -cf - \ opt/widget etc/widget etc/cron.d/widget etc/init.d/widget \ --exclude=opt/widget/local.conf | ssh otherhost tar -C / -xvf - 

Commentaires

  • Créativité? Cest ainsi que nous partagions les lecteurs de bande. 🙂
  • Pouvez-vous nous dire ce que cela fait? Par exemple, je nai aucune idée de ce que ‘ cron ‘ a à voir avec la copie de fichier!
  • @aliqandil opt / widget etc / widget etc / cron.d / widget etc / init.d / widget sont des fichiers individuels à inclure dans larchive tar. Le but était dillustrer pourquoi parfois vous avez besoin de fantaisie. Cette série de commandes diffuse larchive tar via une connexion ssh et la désarchive de lautre côté. Ainsi, aucune archive tar nest jamais écrite sur le disque. Jutilise parfois ceci pour sélectionner des fichiers à copier en une seule commande.
  • Ow! Jai appris que le premier ‘ / ‘ était le chemin source! (Quest-ce que cest?) Cétait donc une question idiote! Merci. 🙂
  • Tar va chdir vers  » /  » donc tous les chemins suivants sont relatifs à  » / « .

Réponse

Si vous souhaitez synchroniser les fichiers des deux systèmes, jetez un œil au programme rsync:

(voir tutoriel ici)

Commentaires

  • Cest un véritable outil professionnel.

Réponse

Si vous avez lun des systèmes dexploitation courants, vous pouvez installer pigz qui est le même que gzip sauf quil utilisera plusieurs cœurs et soyez plus rapide sur un réseau rapide. Ma commande est un peu différente.

tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S" 

ou lautre façon dobtenir des fichiers

ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S 

ou sauvegardez la racine fs avec

ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz 

Commentaires

Answer

Une méthode plus simple qui fonctionne avec des ordinateurs NVIDIA Jetson contrôlés par SSH consiste à se connecter avec SFTP (SSH File Transfer Protocol).

Supposons que je souhaite déplacer le document UFO_blueprint.odt des serveurs distants de la NASA et déplacez-le dans mes documents.

  1. cd là où vous voulez que le fichier soit enregistré
$ cd Documents 
  1. Connect
$ sftp sammy@your_server_ip_or_remote_hostname 
  1. Accédez au répertoire qui contient le fichier à transférer.
$ cd NASA/secret_files/ 
  1. Transfert
$ get UFO_blueprint.odt 

Pour obtenir le répertoire complet, utilisez plutôt

$ get -r secret_files/ 

Commentaires

  • utilisez put commande de téléchargement de fichiers

Answer

Copie récursive Unix / Linux de fichiers et de dossiers sur un shell sécurisé en utilisant le code suivant:

scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path> 

Un exemple complet pourrait ressembler à:

scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects 

Notez que si vous navez pas de serveur DNS pour résoudre les noms dhôte, utilisez plutôt votre adresse IP. Lexemple ci-dessus pourrait ressembler à ceci

scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects 

Answer

Sils sont en cours dexécution SCP / SSH sur un autre port, assurez-vous de spécifier loption de port majuscule -P.

Exemple:

 scp -P 7121 /users/admin/downloads/* [email protected]:/home/  

Commentaires

  • Cette question date de sept ans et a de nombreuses réponses déjà. Sil est vrai que ssh peut utiliser des ports non par défaut et que loption ssh client ‘ s -P est alors requise, vous ne ‘ t vraiment aider avec le problème à portée de main. Essayez de vous concentrer sur les questions récentes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *