42 votes

Comment puis-je visualiser des images via ssh

Je surveille un site Web et je voudrais savoir s'il existe un moyen de visualiser les images via ssh plutôt que de charger le site Web à chaque fois.

43voto

Mohsin Points 11

Vous n'avez pas dit à partir de quel système d'exploitation vous vous connectez. Si vous utilisez un *nix avec un serveur X, vous pouvez utiliser la redirection X de ssh. Cela vous permettra d'exécuter des applications graphiques sur le serveur distant et de les faire afficher sur la machine locale. Par exemple :

ssh -Y user@server
eog pictures/foo.png

En supposant que le serveur a eog installé, l'image devrait s'ouvrir et s'afficher sur votre écran.

Pour référence future, lorsque vous posez des questions sur ce site, il est bon de préciser le système que vous utilisez, car la réponse correcte en dépendra souvent.

11voto

Bobble Points 1431

Si vous êtes sur OS X, en utilisant iTerm2, vous pouvez faire imgcat et afficher l'image directement dans le terminal.

https://www.iterm2.com/documentation-images.html enter image description here

6voto

mjmerrell Points 61

J'ai essayé quelques-unes des méthodes énumérées par d'autres réponses sur cette page, et je les ai essayées à la fois sur Ubuntu 20 et MacOS Mojave (ma machine est une abomination à double démarrage). Sur les deux systèmes, j'ai trouvé que l'utilisation de l'option -X drapeau avec ssh そして eog fonctionne, mais est un peu lente et maladroite. La redirection X peut convenir si vous parcourez de petits répertoires, mais peut devenir complètement inutilisable si le répertoire dans lequel vous travaillez contient de grandes quantités de données.

La meilleure méthode que j'ai vue est sshfs . C'est un jeu d'enfant à mettre en place et je l'ai trouvé extrêmement flexible. En gros, il monte le système de fichiers distant comme un lecteur local, ce qui vous permet soit de visualiser les fichiers distants, soit de transférer des fichiers entre votre runtime local et l'hôte distant. scp (bien que scp est une compétence utile à connaître).

Ubuntu

Je ne suis pas sûr des versions précédentes, mais Ubuntu 20.04 était livré avec sshfs . Si votre version d'Ubuntu ne l'a pas, vous pouvez l'installer avec

sudo apt install sshfs

Pour l'utiliser, vous aurez besoin d'un répertoire vide. J'ai le mien dans mon répertoire personnel et je l'ai nommé sc . Pour le configurer, vous exécutez la commande :

sshfs -o follow_symlinks <user>@<server address>:/ ~/sc

Voilà ! Lorsque vous utilisez votre explorateur de fichiers ou votre terminal pour ouvrir sc vous verrez que le lecteur distant est monté.

MacOS

Les étapes sont presque les mêmes que celles pour Linux/Ubuntu. La différence ici est que MacOS n'est pas livré avec sshfs installé, et sshfs nécessite également certaines dépendances qui ne sont pas incluses dans MacOS. Donc d'abord, nous installons ces dépendances avec :

brew install osxfuse

Maintenant, nous pouvons installer sshfs avec :

brew install sshfs

Ensuite, pour monter le disque distant, vous devez créer un répertoire local vide - j'appelle le mien sc et il est situé dans mon répertoire personnel. Ensuite, vous montez le disque distant dans le répertoire distant avec

sshfs -o follow_symlinks <user>@<server address>:/ ~/sc

Lorsque vous ouvrez sc avec votre explorateur de fichiers préféré (tel que Finder sous MacOS), vous trouverez le lecteur distant, probablement sous le nom de OSXFUSE Volume 0...

J'espère que cela vous aidera !

4voto

nicodjimenez Points 141

Il s'agit d'un problème commun aux chercheurs en vision par ordinateur. J'ai créé un petit script ( https://github.com/nicodjimenez/ImgView ) que j'utilise pour servir les images dans un répertoire sur une machine distante via python run.py -d path/to/image/dir/ . Ensuite, j'utilise le tunneling ssh pour transférer un port local vers le port distant sur lequel je fais tourner le serveur, puis je visualise les images sur ma machine locale en faisant pointer mon navigateur web sur mon port local, par défaut. http://0.0.0.0:8000/ . Cette approche est la plus souple pour l'affichage d'images via ssh car vous pouvez contrôler l'apparence de l'affichage.

4voto

Alban Browaeys Points 59

Sous Linux, vous pouvez rediriger la sortie ssh. Avec l'aide d'un visualiseur d'images capable de lire depuis l'entrée standard (cf. Existe-t-il un visualiseur d'images qui prend des images sur STDIN ? ) et le Pipe d'Unix | j'obtiens :

ssh remote_host "cat /remote/path/to/image" | display

PS : ceci nécessite le programme d'affichage d'ImageMagick sur l'hôte local. La commande entre guillemets est exécutée par ssh sur l'hôte distant. Ou pour d'autres visionneurs d'images (ici le visionneur d'images Gnome eog) :

FIFO=$(mktemp -u);
ssh remote_host "cat /remote/path/to/image" > "$FIFO";
eog  "$FIFO" && rm "$FIFO";

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