96 votes

Télécharger un fichier au cours d'une session SSH active

Je veux télécharger un fichier à partir d'une session SSH active. Dans de nombreux cas, je dois probablement pourrait utilisez simplement SFTP, scp , rsync et autres, mais il arrive que je dispose d'autorisations élevées sur le serveur distant, de sorte que je ne peux pas utiliser ces méthodes.

Si vous avez du mal à comprendre ce que je veux dire, imaginez que vous souhaitiez télécharger quelque chose de /root/ o /var/log/auth.log . La connexion à la racine est désactivée (parce que nous ne sommes pas idiots). Comment récupérer ce fichier ? En le copiant dans un endroit moins protégé, puis en le déplaçant ? C'est un peu compliqué. Il y a aussi des scénarios où le chemin distant est complexe ou temporaire, ou n'est même pas un chemin parce que je veux que la sortie d'une commande distante soit stockée localement. Stocker à distance, puis copier ? Maladroit !

Il y a plusieurs façons plus maladroites de réaliser ces versions, mais dans un monde idéal, j'aurais quelque chose de semblable à un accès local en écriture depuis le serveur distant, en utilisant la session SSH existante comme conduit. Quelque chose comme (c'est juste une impression d'artiste) :

$oli@remote: cp /root/cheesecake /local/

Et il apparaît juste dans mon local cwd . Et un accès bidirectionnel ne serait pas une mauvaise chose.


Huit longues années se sont écoulées depuis que j'ai posé cette question et nous avons vu une véritable gamme de clunk, mais cela reste un problème avec lequel je me débats encore de temps en temps.

J'ai reformulé la question en quelque chose de beaucoup plus idéaliste. Je comprends parfaitement qu'il n'y a peut-être pas de réponse parfaite actuellement. Tous les efforts passés et futurs pour atteindre mon idéal sont appréciés.

2voto

wesalius Points 121

Si votre fichier est suffisamment petit, vous pouvez le coder avec base64 et le décoder localement :

remote.example.net$ base64 <myfile
_(copy the output)_
    local.example.net$ base64 -d >myfile
_(copy the output)_
Ctrl+D

Réponse originale d'où j'ai tiré ceci (et testé) : https://unix.stackexchange.com/a/2869/194134

1voto

John Sibly Points 9805

Ce n'est pas sur la connexion SSH active, mais scp copie les fichiers en utilisant les mêmes mécanismes et permissions que ssh.

1voto

Eric Points 266

Cela n'est pas possible avec une session ssh par défaut, mais vous pourriez utiliser un script à la place de ssh, qui démarre quelque chose comme un simple serveur ftp ou rsh sur votre système local et exécute ssh avec les options nécessaires pour configurer un tunnel de retour vers votre bureau pour se connecter à ce serveur.

1voto

Max Schmeling Points 6295

konsole a cette possibilité via le menu "Edit->ZModem Upload" lorsque vous êtes dans une session à distance (ou Ctrl-Alt-U).

Veuillez noter que le paquet lrzsz doit être installé en premier. Pour moi, il semble que cela ne fonctionne que pour le téléchargement de fichiers ASCII.

1voto

Nex0 Points 11

Étonnamment, je ne vois aucune mention du bon vieux Midnight Commander ici. À mon avis, c'est probablement le gestionnaire de fichiers le plus universel et le plus utile pour Shell avec des capacités de puissance, l'un des outils "must have" pour le cas, qui vous permet également de vous connecter par SSH, FTP, SFTP ainsi, tandis que sur le deuxième panneau vous pouvez ouvrir n'importe quel autre (votre local) système de fichiers et ainsi travailler avec des fichiers librement.

Tout ce dont vous avez besoin : apt-get install mc (de l'univers)

Après cela, lancez mc, ouvrez le menu pour le panneau gauche ou droit, choisissez Shell connexion, entrez le nom d'utilisateur@remote-ip, le mot de passe - en fait, c'est tout copier (ici : télécharger) les fichiers/dossiers d'une machine à l'autre avec F5, déplacer avec F6, et ainsi de suite selon les boutons ci-dessous. Pour les anciens utilisateurs de MS : comme dans NC pour DOS

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X