Mots-clé : scp

scp : comment résoudre le problème C0644

Il arrive parfois que lorsqu’on fait un scp, ça ne fonctionne pas, et on peut lire quelque chose comme :

>> scp root@olivierpons.fr:/var/www/html/pysoko.tar.bz2 .
root@olivierpons.fr's password:
C0644 129502 pysoko.tar.bz2
>>

Dans cet exemple, je veux récupérer le fichier :
pysoko.tar.bz2
qui est sur le PC distant dans le répertoire
/var/www/html/
sachant que le PC distant est nommé :
olivierpons.fr.
En fait le problème est super simple : lorsque le programme scp se connecte pour faire la copie, un shell du distant nommé olivierpons.fr est ouvert, et par conséquent tout ce qu’il y a dans la configuration du shell est exécuté, donc tout ce qu’il y a dans le fichier de configuration du shell .bashrc.
Pour faire simple, si vous avez fait un « echo » quelque part dans le fichier de configuration du shell .bashrc, changez le par tty -s && echo ".
L’explication est dans ce site génial, qui explique tout sur le SCP, encore mieux que mon article, qui sort pourtant numéro un sur google France lorsqu’on tape scp linux

Le monde est injuste !

Linux : utilisation de SCP (mémo simple)

SCP (= Secure Copy Protocol) donne la possibilité de transférer des fichiers entre des machines UNIX via le protocole sécurisé SSH. C’est rapide et c’est fait en toute sécurité.

  • Transférer le fichier file.txt vers le répertoire en cours de la machine 192.168.0.12 :
    scp file.txt noob@192.168.0.12:.
    (NB : le « . » est important à la fin, cela indique que le répertoire de destination est le répertoire en cours)
  • Récupérer file.txt situé sur /home/noob sur la machine 192.168.0.12 et le mettre dans le répertoire en cours (important : n’oubliez pas le « . » à la fin qui indique le répertoire en cours) :
    scp noob@192.168.0.12:/home/noob/file.txt .
  • Récupérer tous les fichiers pdf situés dans le répertoire /usr/local de la machine 192.168.0.12 et les mettre dans /var/www :
    scp noob@192.168.0.12:/usr/local/*pdf /var/www
  • Transférer tout le repertoire /var/www (en récursif) vers la machine 192.168.0.12 dans le repertoire /incoming :
    scp -r /var/www noob@192.168.0.12:/incoming