X-Server

xsel:無法打開顯示:(空)

  • May 17, 2022

我想用 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

開始你的ssh連接

ssh -X yourserver

然後不要自己更改DISPLAY變數。 ssh應該自動設置它,以便xsel(和任何其他 X11 客戶端)可以使用本地電腦上的顯示 - 包括它的剪貼板。這稱為X11 轉發

DISPLAY=:0在您的ssh會話中手動設置將告訴xsel使用該遠端伺服器上的顯示 - 如果一個甚至正在執行。

正如賈爾斯勳爵在這裡所說

  • 您需要連接的客戶端ssh -X(每個會話,~/.ssh/config始終使用它)
  • 您需要在伺服器端X11Forwarding yes/etc/ssh/sshd_config注意d)。此外,預設情況下安裝了一些包,如xauthand 。libxdmcp6

出於安全原因,我不會讓它一直使用它,並且通常只在非常受信任的伺服器上使用它。

其他來源

引用自:https://unix.stackexchange.com/questions/566081