web-dev-qa-db-fra.com

Problème avec la syntaxe scp

J'essaie de copier une archive .tar du serveur distant sur mon PC.

Répertoire de l'archive que je veux copier:

canserhan@embserv:~/tar_files/rtl_archive.tar

Destination:

serhan@serhan-Lenovo-B560:~/Documents$ 

Je me connecte au serveur distant et utilise la commande:

canserhan@embserv:~/tar_files$ scp canserhan@embserv:~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~Documents$
Password:
ssh: serhan-Lenovo-B560: Name or service not known
lost connection
canserhan@embserv:~/tar_files$ 

Il doit y avoir quelque chose qui ne va pas avec la syntaxe scp que j'utilise. Cependant, je ne pouvais pas le comprendre. Pourrais-tu m'aider s'il te plaît?

Merci.

2
Amadeus Bachmann

En règle générale, si vous voulez envoyer quelque chose au serveur distant via scp:

scp some_files.tar user@remoteHost:
scp some_files.tar user@remoteHost:Documents/newname.tar

Mais si vous voulez télécharger quelque chose:

scp user@remoteHost:Documents/foo.tar ~/Desktop
scp user@remoteHost:/any/other/dir/foo.tar .
3
us3r

De la page de manuel scp:

 -3      Copies between two remote hosts are transferred through the local
         Host.  Without this option the data is copied directly between
         the two remote hosts.  Note that this option disables the
         progress meter.

Je suggérerais que le problème est que votre machine embserv ne peut pas "voir" votre autre machine serhan-Lenovo-B560, ou, si cela est possible, elle ne peut pas résoudre le nom.

Lorsque vous appelez scp avec deux machines distantes, ce qu'il essaie réellement de faire est quelque chose semblable à ceci:

ssh canserhan@embserv "scp ~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~Documents$"

C'est une bonne chose car cela signifie que la copie sera plus efficace, mais cela nécessite que scp de la machine A à la machine B fonctionne, ce qui ne sera pas toujours le cas.

Si tel est le problème, vous pouvez le résoudre en utilisant -3, ou en transmettant l'adresse IP numérique de serhan-Lenovo-B560 (si le nom est le problème), ou en corrigeant votre configuration ssh sur embserv afin qu'il puisse atteindre serhan-Lenovo-B560.

EDIT:

Alors, essayez ceci:

scp canserhan@embserv:~/tar_files/rtl_archive.tar [email protected]:~Documents$

xxx.xxx.xxx.xx est l'adresse IP de votre serveur.

ou, si cela échoue, cela devrait fonctionner, mais fonctionnera plus lentement:

scp -3 canserhan@embserv:~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~Documents$

À propos, ~Documents$ a également l’air faux. Êtes-vous sûr que cela ne devrait pas être ~/Documents?

1
ams

Essayez la commande:

scp ~/tar_files/rtl_archive.tar serhan@serhan-Lenovo-B560:~/Documents/

embserv est votre machine locale. Si vous écrivez scp server1:/path/to/file server2:/path/to/second/file, ceci ordonne à scp de copier un fichier d'un serveur à un autre. Si vous souhaitez copier un fichier local sur un serveur ou inversement, ignorez simplement les deux points : et le nom de l'ordinateur. De plus, ~ doit être suivi d'une barre oblique dans votre cas. ~ se traduit par /home/username/.

1
lumbric

Je crois que vous n’avez pas de DNS sur votre réseau. On dirait qu’il ne peut pas résoudre votre nom serhan-Lenovo-B560

Vous pouvez essayer une chose, il suffit de taper l'adresse IP de l'extrémité distante.

$ scp canserhan@embserv:~/tar_files/rtl_archive.tar serhan@<remote-ip>:~Documents

De plus, essayez de donner le chemin complet/absolu au lieu de ~.

0
Vineet Menon