Как я могу просматривать фотографии через SSH
Я наблюдаю за веб-сайтом и хочу знать, есть ли способ, с помощью которого я могу просматривать фотографии через ssh, вместо того, чтобы каждый раз загружать сайт.
18 ответов
Вы не сказали, из какой операционной системы вы подключаетесь. Если вы используете * nix с X-сервером, вы можете использовать ssh X forwarding. Это позволит вам запускать графические приложения на удаленном сервере и отображать их на локальном компьютере. Например:
ssh -Y user@server
eog pictures/foo.png
Предполагая, что сервер имеет eog
После установки изображение должно быть открыто и отображено на экране.
Для дальнейшего использования при задании вопросов на этом сайте рекомендуется указать систему, которую вы используете, поскольку от нее часто зависит правильный ответ.
Если вы на OS X, используя iTerm2, вы можете сделать imgcat
и отобразить изображение прямо в терминале.
Я пробовал несколько методов, перечисленных в других ответах на этой странице, и я пробовал их как на Ubuntu 20, так и на MacOS Mojave (моя машина - мерзость с двойной загрузкой). В обеих системах я обнаружил, что использование
-X
флаг с
ssh
а потом
eog
работает, но немного медленно и неуклюже. X-пересылка может быть хорошей, если вы просматриваете небольшие каталоги, но может стать совершенно непригодной для использования, если каталог, в котором вы работаете, имеет большие объемы данных.
Лучший метод, который я видел, это
sshfs
. Это несложно настроить, и я обнаружил, что он очень гибкий. По сути, он монтирует удаленную файловую систему как локальный диск, позволяя вам либо просматривать удаленные файлы, либо передавать файлы между вашей локальной средой выполнения и удаленным хостом - намного проще и интуитивно понятнее, чем
scp
(хотя
scp
это полезный навык).
Ubuntu
Я не уверен насчет предыдущих версий, но Ubuntu 20.04 шла с
sshfs
. Если в вашей версии Ubuntu его нет, вы можете установить его с помощью
sudo apt install sshfs
Для его использования вам понадобится пустой каталог. У меня есть мой в моем домашнем каталоге, и я назвал его
sc
. Чтобы настроить его, запустите команду:
sshfs -o follow_symlinks <user>@<server address>:/~/ sc
Вуаля! Когда вы используете проводник или терминал для открытия
sc
вы увидите смонтированный удаленный диск.
MacOS
Шаги почти такие же, как для Linux/Ubuntu. Разница в том, что в MacOS нет
sshfs
установлен, и
sshfs
также требует наличия некоторых зависимостей, которых также нет в MacOS. Итак, сначала мы устанавливаем эти зависимости с помощью:
brew install osxfuse
Теперь мы можем установить
sshfs
с участием:
brew install sshfs
Затем, чтобы смонтировать удаленный диск, вам нужно создать локальный пустой каталог - я называю свой
sc
и он находится в моем домашнем каталоге. Затем вы монтируете удаленный диск в удаленный каталог с помощью
sshfs -o follow_symlinks <user>@<server address>:/~/ sc
Когда вы открываете
sc
с вашим любимым файловым проводником (например, Finder в MacOS) вы найдете там удаленный диск, вероятно, с именем
OSXFUSE Volume 0...
Надеюсь это поможет!
tiv (или аналогичные инструменты) следует делать в большинстве случаев. Для этого не требуется никаких специальных эмуляторов терминала, поскольку он печатает только коды RGB ANSI.
Также поддерживает подстановочные знаки.
Это общая болевая точка среди исследователей компьютерного зрения. Я создал крошечный скрипт ( https://github.com/nicodjimenez/ImgView), который я использую для обслуживания изображений в каталоге на удаленной машине через python run.py -d path/to/image/dir/
, Затем я использую туннелирование ssh для пересылки локального порта на удаленный порт, на котором я запускаю сервер, а затем я просто просматриваю изображения на своем локальном компьютере, указывая веб-браузер на мой локальный порт, по умолчанию http://0.0.0.0:8000/. Этот подход является наиболее гибким для просмотра изображений через ssh, поскольку вы можете контролировать внешний вид дисплея.
В Linux вы можете перенаправить вывод ssh. С помощью средства просмотра изображений, способного считывать данные со стандартного ввода (см. Есть ли средство просмотра изображений, которое принимает изображения на STDIN?) И Unix Pipe |
, Я получил:
ssh remote_host "cat /remote/path/to/image" | display
PS: для этого требуется программа отображения ImageMagick на локальном хосте. Команда между кавычками выполняется ssh на удаленном хосте. Или для других программ просмотра изображений (здесь программа просмотра изображений Gnome eog):
FIFO=$(mktemp -u);
ssh remote_host "cat /remote/path/to/image" > "$FIFO";
eog "$FIFO" && rm "$FIFO";
Как правило, вы можете передавать мультимедийные данные, например изображения, на локальный рабочий стол или на сам терминал ssh, если они способны отображать мультимедийные данные:
- Пересылка XWindow: переносит любое приложение для просмотра изображений с удаленного хоста на ваш дисплей
- sftp: любой sftp-клиент переносит мультимедиа на локальный рабочий стол, где вы можете запустить программу просмотра изображений
- файловая система ssh: немного похожа на sftp, но удаленная файловая система легко интегрируется локально, поэтому могут запускаться локальные программы просмотра изображений
- Или через Интернет: этот терминал (как и многие другие) сам по себе способен отображать данные изображения (данные изображения - "кошка"!)
Я использую thunar
(файловый менеджер, также работает с nautilus
и, вероятно, другие), чтобы делать такие вещи.
Если вы введете адрес:
sftp://user@ip:port/
Будет подключаться через ssh
(опционально запрашивая пароль / фразу-пароль), и он будет визуально отображать файловую систему, где вы можете открывать изображения с помощью средства просмотра (например, gpicview
или же eog
, но я нашел eog
быть медленным в этом случае).
Итак, что сработало для меня, используя Mac в качестве моей локальной машины и AWS EC2 в качестве моего сервера (ОС Ubuntu), было следующим:
- Установите приложение xQuartz с открытым исходным кодом на свой Mac, вы можете найти его здесь.
- Запустите приложение xQuartz. Это откроет окно терминала.
- Подключитесь к вашему серверу с помощью пересылки X11:
ssh -Y user@server
или жеssh -X user@server
- Перейдите в каталог на вашем сервере с картинками
- Откройте нужное изображение с помощью:
xdg-open picture_name
. На вашем Mac откроется окно с изображением.
Во-первых, вы можете подключиться к серверу черезssh
.
$ ssh -Y username@remote-server.de
Обратите внимание на опцию. Это важно для всех ssh-соединений, которые вы устанавливаете, пока не дойдете до машины, на которой расположены изображения. Например, если вам нужно сделать два прыжка , чтобы добраться до целевой машины, вам придется использовать-Y
переключатель, который включает надежную пересылку X11.
$ ssh -Y username@remote-contact-server.de
$ ssh -Y towerpc23
Затем,cd
в каталог, где находятся изображения, и выполните:
$ cat icelandic_white_horse.jpg | display
Через несколько секунд изображение будет передано обратно на ваш локальный компьютер. Обратите внимание, что может быть только одно изображение.display
редактируется одновременно (т. е. пакетное отображение не отображается)
Расширение SSH Visual Studio Code позволяет просматривать удаленные изображения в редакторе. Он кроссплатформенный и не требует локального X-сервера.
Как уже упоминал @Paul, лучший способ, который я нашел, — это использовать встроенный файловый менеджер.
Например, если использовать
dolphin sftp://user@url & disown && exit
Таким образом, вы сможете просматривать файлы и открывать изображения на локальном компьютере.
Вы можете добавить сетевое хранилище в вашем системном обозревателе:
Как установить Eye of Gnome (eog):
- Откройте терминал (ярлык: Ctrl + Alt + T)
- Введите следующую команду: sudo apt-get update.
- Нажмите Enter или Return и введите свой пароль.
- Введите следующую команду: sudo apt-get install eog
- Введите Y и нажмите Enter или Return.
после установки eog используйте следующую команду:
ssh -Y пользователь@сервер
eog images/yourimage.png
Для большинства ответов с высоким рейтингом требуется переадресация X11 или sftp, в то время как я нашел чистый терминальный метод с Китти и рейнджером. Я использовал Mac OS в качестве рабочего стола и Ubuntu 18.04 в качестве сервера. Просто установите Ranger на Ubuntu и Kitty на MacOS, и эти два требования — единственные. Установка и использование следующие:
Mac SSH для Ubuntu 18.04
В Ubuntu
- Установить рейнджер
pip install ranger-fm
(рейнджер установлен по адресу~/.local/bin/ranger
) - Отредактируйте файл конфигурации рейнджера (
~/.config/ranger/rc.conf
)
set preview_images true
set preview_images_method kitty
На Mac
- Установить Китти
brew install kitty
- В терминале Kitty подключите SSH к Ubuntu с помощью
kitty +kitten ssh <HOST>
- Бегать
ranger
для предварительного просмотра изображений
(Скопировано отсюда )
Если вы используете Windows/Linux в качестве рабочего стола, Kitty также можно установить в ОС вашего настольного компьютера.
РЕДАКТИРОВАТЬ: Windows требует поддержки WSL2 .
- Шаг 1:
ssh -Y user@server
- Это активирует X11 через ssh, и тогда ваше локальное приложение, например XQuatz для MacOS, сможет отображать изображения с сервера.
- Шаг 2. На сервере, если
feh
илиeog
дает тебеcommand not found
. ImageMagick — еще один простой в использовании инструмент отображения.-
sudo apt install imagemagick
-
display xx.png
-
Если у вас есть путь к изображениям, который вы можете, как сказал Фрэнк Томас, то вы можете загрузить их и открыть в программе просмотра изображений через scp или, возможно, через sftp, если у вас есть доступ. Если вы используете linux, тогда сделайте wget на картинках, но, конечно, вы не можете открыть их в оболочке, поэтому их загрузка - ваш лучший вариант, если вы говорите только о оболочке.