在主控台中複製貼上,以及鍵盤為什麼會打出錯誤的字元
圖形主控台是一幅螢幕畫面,因此本機的剪貼簿不會自動傳到另一端。有一條管道可以跨過去,另外還有一個獨立的設定,在被找出來之前,會悄悄把每個特殊字元都打錯。
AtlasPVE ·
本條目涵蓋以下問題
- proxmox novnc 複製貼上
- proxmox novnc 剪貼簿
- proxmox 主控台鍵盤沒反應
- proxmox 主控台打出錯誤字元
- proxmox novnc 無法貼上
在自己的電腦上複製了一段很長的指令,點進客體的主控台,按下貼上,結果什麼也沒發生。或者更糟,確實發生了某些事,但貼上的並不是剛才複製的內容。
這裡其實有兩件不同的事,而且經常被混為一談。一件和剪貼簿有關。另一件和鍵盤有關,而浪費掉整個下午的正是這一件。
為什麼剪貼簿不會直接跨過去
圖形主控台是一幅螢幕畫面。從本機傳到客體的不是文字,而是按鍵事件:按了這個鍵,接著按了那個鍵。客體根本不知道另一端有剪貼簿存在。
瀏覽器也不允許網頁隨時讀取剪貼簿,這是一條出於明顯理由而存在的好規則,不會為了方便而放寬。
因此主控台提供了一條明確的跨越管道:剪貼簿面板。把文字貼進那個方塊,就會設定遠端的剪貼簿,接著在客體內照常貼上即可。這多了一個步驟,而這就是整個機制。
反方向也是同樣的做法,只是順序相反:在客體內複製,再從面板讀出來。
把所有字都打錯的那個設定
接下來這一個,看起來像貼上壞了,其實不是。
圖形主控台有一個鍵盤配置,它是在資料中心層級設定的,不是依使用者設定,也不是由瀏覽器決定。它控制虛擬機器的虛擬鍵盤如何解讀按鍵事件。
如果這個配置和實際使用的實體鍵盤不一致,字母可以正常傳過去,其他字元則不行。符號會跑到錯的位置,而受影響最嚴重的,正是密碼和設定檔中會用到的那些字元。
在用來驗證這件事的主機上,鍵盤配置設為一種非英文的配置,這對那台機器而言是正確的,但對使用不同實體鍵盤操作它的人來說就是錯的。
這個症狀非常明確,值得記住:字母和數字正常,標點符號錯誤。這是鍵盤配置不一致,不是貼上失敗,也不是主控台壞了。
為什麼長段貼上仍然會出錯
即使剪貼簿面板運作正常、鍵盤配置也正確,把很長的文字貼進圖形主控台仍然很脆弱。每個字元都是一個模擬的按鍵事件,負載很高的客體可能會漏掉一些。不會出現任何錯誤訊息;得到的是一條中間某處少了三個字元的指令。
如果要貼上的內容很重要,就完全不要以按鍵的方式送進去。
內容重要時改用的做法
金鑰、密碼、憑證、很長的設定區塊。完全不要透過螢幕輸入。把它寫成檔案:客體代理程式可以在沒有任何網路的情況下,把小檔案放進執行中的客體,這正是那條通道的用途。超過約 60 KB 的內容則需要改用網路。
之後還會再執行的 Shell 指令。把它放進檔案,然後執行該檔案。這樣即使漏掉一個按鍵也不受影響,而且檔案還能保留下來。
一整段工作階段。如果客體有文字主控台就使用它,網路可用的話就用 SSH。兩者都是文字,因此終端機本身的複製貼上會照常運作,也不會發生鍵盤配置的轉換。
簡單談 SPICE
SPICE 確實支援本機與客體之間真正的剪貼簿共用,前提是客體內要安裝代理程式。如果會長時間待在圖形桌面的客體中,這就是值得設定它的理由。
對於一個月只登入兩次的伺服器來說,它需要的設定比問題本身值得的還多。
Atlas 的做法
Atlas 開啟的是 Proxmox VE 自己的主控台,因此剪貼簿的行為就是 Proxmox 的行為,沒有任何改變。沒有另一套需要學習的 Atlas 剪貼簿,也沒有第二套需要信任的實作。
Atlas 改變的是這個問題出現的頻率。大部分貼進主控台的動作都不是在除錯,而是因為該工作沒有對應的畫面,才去找來的一條指令。儲存空間操作、網路變更、更新、使用者與權限管理:這些都有畫面,所以剪貼簿根本不會牽涉其中。
主控台仍保留給真正需要它的情況,而在那些情況下,上述建議和大家給的建議一樣,因為那是機制本身,而不是個人偏好。
資料來源
Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。