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 ».
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 !