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.

0voto

gerlos Points 2274

Puisque vous vous connectez depuis un ordinateur de bureau, je suppose que vous pouvez ouvrir un second terminal.

C'est ainsi que je procède souvent :

  • à partir du premier terminal, celui où la session ssh est en cours d'exécution, j'obtiens le chemin complet du fichier que je dois récupérer, en utilisant l'une des méthodes suivantes realpath myfile o readlink -f myfile (les anciennes versions d'Ubuntu ne préinstallent pas realpath ) et le copier.
  • à partir du second terminal, j'utilise scp o sftp pour obtenir le fichier, en collant le chemin complet que j'ai obtenu auparavant. Par exemple : scp user@host:/etc/some/file ./

Il est assez basique, mais il est également facile à retenir et n'a pas besoin de paquet supplémentaire pour fonctionner.

get the full path from first terminal, and then paste in the second terminal

-2voto

Victor Points 1

Je réfléchis beaucoup trop, les gars. Je cherchais toutes les réponses profondes, sombres et complexes aussi. Il s'avère que vous pouvez faire cela directement à partir de Dolphin. fish://username@server:port

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