xsel:ディスプレイを開くことができません:(null)

xsel:ディスプレイを開くことができません:(null)

xselを使用して長いファイルをクリップボードにコピーしたいと思います。ローカルコンピュータで、次のように入力します。

cat /usr/bin/mysql_secure_installation|xsel -b

mysql_secure_installationローカルオペレーティングシステムのファイルがクリップボードにコピーされました。

ここで、sshコマンドを使用して私のvpsにログインし、次のように入力します。

DISPLAY=:0 cat /usr/bin/mysql_secure_installation|xsel -b

エラーメッセージが表示されました:

xsel: Can't open display: (null)
: Inappropriate ioctl for device

リモートファイルを取得する正しい方法はscp次のコマンドであることがわかります。

scp -P port username@tohostname:/remotefile /newlocalfile

私のvpsにログインした後、リモートコンピュータからローカルコンピュータのクリップボードにファイルの内容をクリップボードにコピーする方法を知りたいです。

同じエラー:

DISPLAY=:0 xsel -b <  /usr/bin/mysql_secure_installation
xsel: Can't open display: (null)
: Connection refused

答え1

ssh接続を開始

ssh -X yourserver

それからいいえ変数を直接変更してくださいDISPLAY。これは、(他のX11クライアントと同様に)クリップボードを含むローカルコンピュータのディスプレイを使用できるsshように自動的に設定する必要があります。xselこれは…X11配信

DISPLAY=:0セッションで手動で設定すると、そのサーバーが稼働している場合は、そのリモートサーバーのディスプレイを使用するようにssh求められます。xsel

答え2

別の答えは、希望のO(結果)を得るためにXセッションを渡す方法を示しました。しかし、これはすでに指摘されているように、非常に安全ではなくパフォーマンスが悪く、しばしば追加の設定が必要です。

SCROEモデルで同じE(効果)を達成するための最良の方法は、生のデータバイトをホストにストリーミングし、それをクリップボードにローカルにプッシュすることです。ほぼすべて来ました。パイプがあり、scpがありますが、scpはほぼ正しいです。

ssh -p port username@tohostname cat /usr/bin/mysql_secure_installation | xsel -ib

パイプはcatコマンドの標準出力を保証します。離れてホストは最終的にxselコマンドの標準入力として機能します。地元のマスター。 (これも追加します-i。動作モードが明示的に指定されている場合は、xselを使用するのが最も安全です。)

答え3

ザイルズ卿のようにここで言う:

  • 顧客接続する必要がありますssh -X(セッションごとに~/.ssh/config常に使用)。
  • サービス端末X11Forwarding yes/etc/ssh/sshd_config注意)が必要ですd。またxauth、などのいくつかのソフトウェアパッケージがlibxdmcp6既定でインストールされます。sudo systemctl restart sshd.service変更を適用することを忘れないでください(sudo sshd -tエラーがあるかどうかを確認するには()前にテストモードを使用してください)。

セキュリティ上の理由から、常に使用を許可せず、通常は非常に信頼できるサーバーでのみ使用します。

その他のソース

関連情報