Comment télécharger un fichier depuis le serveur en utilisant SSH? [fermé]


749

J'ai besoin de télécharger un fichier du serveur sur mon bureau. (UBUNTU 10.04) Je n'ai pas d'accès web au serveur, juste ssh.

Si cela aide, mon système d'exploitation est Mac OS X et iTerm 2 en tant que terminal.



51
pourquoi est-ce hors sujet?
jsmedmar

4
car ce n'est pas une question de programmation
Black

26
@EdwardBlack aurait pu être migré à la place vers unix.stackexchange
gldraphael

3
Cela a fonctionné pour moisudo scp -i ~/.ssh/id_rsa username@remotehost.io:Downloads/filename.sql ~/Desktop
kaxi1993

Réponses:


1166

Dans votre terminal, saisissez:

scp your_username@remotehost.edu:foobar.txt /local/dir

remplacer le nom d'utilisateur, l'hôte, le nom de fichier distant et le répertoire local, selon le cas.

Si vous souhaitez accéder à EC2 (ou à tout autre service nécessitant une authentification avec une clé privée), utilisez l' -ioption:

scp -i key_file.pem your_username@remotehost.edu:/remote/dir/foobar.txt /local/dir

De: http://www.hypexr.org/linux_scp_help.php


3
Je ne connais pas Amazon EC2, mais si vous avez un accès SSH à votre serveur, cela devrait fonctionner.
Josh1billion

3
Je pense qu'il y a un manque /entre your_username@remotehost.edu:et foobar.txtdans l'exemple ci-dessus.
Eugene S

13
@NiLL scp -i xxx.pem your_username@remotehost.edu: foobar.txt / some / local / directory
Helin Wang

3
@Alex ajoute l'option -r.
SgtPooki

10
Informations utiles - Je ne savais pas que vous exécutiez cela à partir de votre machine locale, et non à partir de l'endroit où vous souhaitez télécharger. donc comme Horak le demandait, ~ / le déposera dans votre répertoire utilisateur comme / Users / admin / - J'ai été connecté à distance à ssh et je me suis demandé pourquoi cela ne fonctionnait pas.
Kai Qing du

322

Vous pouvez le faire avec la scpcommande. scputilise le protocole SSH pour copier des fichiers sur le système en étendant la syntaxe de cp.

Copiez quelque chose d'un autre système sur ce système:

scp username@hostname:/path/to/remote/file /path/to/local/file

Copiez quelque chose de ce système vers un autre système:

scp /path/to/local/file username@hostname:/path/to/remote/file          

Copiez quelque chose d'un système vers un autre système:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file   

5
J'aime la façon dont si quelqu'un voulait répondre à la question OP et n'a pas lu complètement votre réponse, il pourrait accidentellement et sans penser simplement exécuter votre première commande et éventuellement écraser le fichier distant qu'ils tentent de télécharger avec le fichier local qu'ils ont peut-être touché plus tôt. Oops.
Mr Purple

Pourquoi y a-t-il des accès? Quelqu'un peut faire "rm -rf /" sans réfléchir mais cela ne réduit pas l'utilité de la commande rm?
raj_gt1

1
Pensez-vous que commencer une réponse à "comment dois-je mettre à niveau Linux?" avec la commande "rm -rf /" serait aussi une bonne idée?
Mr Purple

2
@MrPurple - Merci pour l'avertissement, j'ai presque fait exactement ça. J'ai modifié la question pour afficher la commande la plus pertinente en premier
Sphinxxx

96

scp est certainement le chemin à parcourir, mais pour être complet, vous pouvez également faire:

$ ssh host 'cat /path/on/remote' > /path/on/local

ou

$ cat /path/on/local | ssh host 'cat > /path/on/remote'

Notez qu'il s'agit d'UUOC, mais cela < /path/on/local ssh host 'cat > /path'pourrait provoquer une confusion inutile.

Et pour proxy entre deux hôtes:

$ ssh host1 'cat /path/on/host1' | ssh host2 'cat > /path/on/host2'


5
Quelqu'un a-t-il fait un test de vitesse sur les différentes méthodes? Je serais curieux de savoir lequel est le plus rapide. Cas d'utilisation: j'ai un énorme fichier à télécharger.
starbeamrainbowlabs

Cela fonctionne réellement avec .ssh / config, alors que scp ne semble pas suivre la configuration ssh

13

Si le serveur SSH prend en charge le sous-système SFTP (cela fait partie de SSH et n'est pas lié à FTP), utilisez sftp. Si ce n'est pas le cas, essayez scp.

CyberDuck les prend en charge tous.


2
Téléchargez depuis leur site Web, cyberduck.ch/Cyberduck-4.2.1.zip
J-16 SDiZ

Il semble qu'ils aient depuis changé le logiciel pour être gratuit, mais vous pouvez éventuellement donner n'importe quel montant et cela supprimera une "invite de don" depuis le programme.
Mike

12
Cela ne répond pas à la question.
edwinj

1
Il le fait, il est assez facile de télécharger en utilisant SFTP de Cyberduck
Miguel Stevens

FileZilla fonctionne très bien pour moi, et est gratuit et open source (et fait par les mêmes gars qui font Firefox). tout comme Cygwin.
hanshenrik
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.