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.

NiLL
la source
Essayez ce sftp: winscp.net/eng/download.php
Nishchit Dhanani
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 [email protected]:Downloads/filename.sql ~/Desktop
kaxi1993

Réponses:

1166

Dans votre terminal, saisissez:

scp [email protected]: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 [email protected]:/remote/dir/foobar.txt /local/dir

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

Josh1billion
la source
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 [email protected]:et foobar.txtdans l'exemple ci-dessus.
Eugene S
13
@NiLL scp -i xxx.pem [email protected]: 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   
raj_gt1
la source
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'
William Pursell
la source
2
winscp.net/eng/download.php
Nishchit Dhanani
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.

J-16 SDiZ
la source
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