Transférer un fichier lourd entre Linux et Mac OSX grâce à SSH

Partager cet article

Temps estimé pour la lecture de cet article : 16 min

Un peu de contexte, j’ai récemment eu besoin de transférer un fichier depuis mon ordinateur personnel sous ArchLinux vers mon ordinateur de travail sous Mac OSX. Le fichier pesant plus de 150 Mo, je ne pouvais pas l’envoyer par e-mail. Une solution simple, c’est ssh, regardons ça en détail.

Comment, peut-on transférer des fichiers entre Linux et Mac ?

Afin de résoudre, mon problème j’ai commencé par regarder les différentes solutions qui s’offraient à moi :

  • J’aurais pu l’envoyer sur google drive ou le transférer avec un site comme WeTransfer mais je ne voulais pas que ce fichier soit accessible sur internet, donc j’ai directement éliminé cette solution.
  • Une autre solution possible serait d’utiliser un dossier partagé sur le réseau. C’est très facile à faire sous Linux grâce au protocole Samba. Personnellement, je n’ai pas pris cette direction car ça serait sortir l’artillerie lourde pour ce que je voulais faire, sachant que je ne réaliserais sûrement pas beaucoup de transfert entre les deux PC en question. Pour ceux que ça intéresse, voici un super tutoriel proposé dans la documentation d’Ubuntu.
  • Enfin, on peut également envoyer le fichier grâce à SCP. Il suffit d’ouvrir un terminal et hop on peut directement envoyer le fichier vers un endroit localisé sur la machine distante le tout en ligne de commande, le rêve non ?

Transmettre un fichier depuis Linux vers Mac grâce à SCP

J’ai donc choisi SCP comme solution, un petit coup de man et voici un exemple d’utilisation :

scp file ludo@192.168.1.10:~/Desktop/

Le détail des différents paramètres dans l’ordre :

  • Le nom du fichier
  • L’utilisateur qui va se connecter sur la machine distante dont l’adresse IP sur le réseau est 192.168.1.10
  • Le chemin vers l’endroit où copier le fichier, ici le bureau

Exécutons donc cette magnifique commande et observons le magnifique résultat :

ludo ~/Desktop [21:10] -> scp file.txt ludo@192.168.0.11:~/Desktop/
ssh: connect to host 192.168.0.11 port 22: Connection refused
lost connection

On se fait refuser la connexion par le Mac distant, en effet par défaut, il est impossible de faire une copie par ssh. Qu’à cela ne tienne, allez dans « Préférences systèmes », « Partager » et on active l’option « Authoriser une session à distance ».

Mac remote session preferences

Refaisons le test :

ludo ~/Desktop [21:33] -> scp file.txt ludo@192.168.0.16:~/Desktop/
The authenticity of host '192.168.0.16 (192.168.0.16)' can't be established.
ECDSA key fingerprint is SHA256:4SeWrziPnf2XpdyjaBal1VgjsBu5Ls7ckjsMMc/XAQA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.16' (ECDSA) to the list of known hosts.
ludo@192.168.0.16's password: 
file.txt                                                                                                                                        100%    0     0.0KB/s   00:00    
ludo ~/Desktop [21:54] ->

Comme vous pouvez le voir, il vous faudra bien sûr vous connecter avec le mot de passe de la session de l’ordinateur distant. L’avantage, c’est qu’avec SCP, on a même l’avancement de l’envoi du fichier !

Envoyer un fichier depuis Mac vers Linux

Et si on voulait faire l’inverse ? Afin de pouvoir faire le transfert depuis votre Mac vers un pc sous Linux, il vous faudra installer openssh.

# Ubuntu
sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

# ArchLinux
sudo pacman -S openssh
sudo systemctl start sshd

Bonus: trouver l’adresse IP sur le réseau d’une machine Linux ou Mac

Pour ceux qui ne le sauraient pas afin de connaitre l’IP de sa machine connecté à un réseau, il suffit de taper la commande :

ifconfig

Ce qui nous donne :

ludo ~/Desktop [22:25]  -> ifconfig 
...
wlp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.16  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::f55c:545f:5d28:a598  prefixlen 64  scopeid 0x20<link>
        inet6 2a01:e0a:4e7:5dd0:a508:4ce5:1ca6:4c35  prefixlen 64  scopeid 0x0<global>
        ether c0:38:96:6c:0d:3d  txqueuelen 1000  (Ethernet)
        RX packets 8385544  bytes 9798470620 (9.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4833177  bytes 1047901086 (999.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

En lisant le premier paramètre de la partie inet du résultat, vous trouverez l’IP désirée ! Par exemple ici l’IP de ma machine est 192.168.0.16.

Et c’est tout ! SCP, l’essayer c’est l’adopter ! Bon transferts de fichiers !

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.