私はウェブサイトを監視していて、毎回ウェブサイトをロードするのではなく、ssh経由で画像を表示できる方法があるかどうか知りたいです。
接続元のオペレーティングシステムを指定していません。 Xサーバーを実行している* nixを使用している場合は、ssh X転送を使用できます。これにより、リモートサーバーでグラフィカルアプリケーションを実行し、ローカルマシンに表示させることができます。例えば:
ssh -Y user@server
eog pictures/foo.png
サーバーにeog
がインストールされていると仮定すると、画像が開いて画面に表示されます。
将来の参考のために、このサイトで質問をするときは、使用しているシステムを指定することをお勧めします。正しい答えはしばしばそれに依存するためです。
oS Xを使用している場合は、iTerm2を使用して、imgcat
を実行し、ターミナルにイメージを表示できます。
これは、コンピュータビジョン研究者の間で共通の問題です。小さなスクリプト( https://github.com/nicodjimenez/ImgView )を作成しました。これを使用して、python run.py -d path/to/image/dir/
経由でリモートマシンのディレクトリにある画像を提供します。次に、sshトンネリングを使用して、サーバーを実行しているリモートポートにローカルポートを転送します。次に、デフォルトでWebブラウザーをローカルポートにポイントして、ローカルマシンの画像を表示します http ://0.0.0.0:8000 / 。このアプローチは、ディスプレイの外観を制御できるため、ssh経由で画像を表示する場合に最も柔軟です。
一般に、メディアデータを転送できます。画像、ローカルデスクトップ、またはメディアを表示できる場合はsshターミナル自体:
Linuxでは、ssh出力をリダイレクトできます。標準入力から読み取れる画像ビューア( STDINで画像を取得する画像ビューアはありますか? を参照)とUnixパイプ|
の助けを借りて、次のように取得します。
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";
フランク・トーマスが言ったようにあなたができる写真のパスがあるなら、あなたはそれらをダウンロードして、アクセス権があればscpまたは多分sftpを介して画像ビューアで開くことができます。 Linuxを使用している場合は、画像上でwgetを実行しますが、もちろんそれらをシェルで開くことはできないため、純粋にシェルで話している場合は、ダウンロードすることをお勧めします。
Systemfile Explorerでネットワークストレージを追加できます。
Visual Studio Code SSH拡張機能を使用すると、エディターでリモート画像を表示できます。これはクロスプラットフォームであり、ローカルXサーバーを必要としません。
Linuxを使用している場合は、sshfs
を使用することもできます。
私はthunar
(ファイルマネージャ、nautilus
やおそらく他のものとも動作します)を使用して、この種のことを行っています。
住所を入力した場合:
sftp://user@ip:port/
ssh
を介して接続し(オプションでパスワード/パスフレーズを要求)、ファイルシステムを視覚的に表示し、ビューアで画像を開くことができます(例:gpicview
またはeog
ですが、この場合eog
が遅いことがわかりました)。