SSHセッションを通じて、Macでいくつかのスイッチ設定を切り取り、貼り付けようとしています。バッファサイズを設定した後、破壊が始まるようです。もちろん、切り取り - 貼り付けバッファは、他のプログラムで切り取って貼り付けるのに十分な大きさです(同じSSHセッション用のクロム端末エミュレータも十分に面白いです)。 MacOSで端末の切り取り - 貼り付けバッファを増やす方法はありますか?または、ショートカット - 貼り付けの問題が発生しますか?
編集する: そこで、接続されたOSでカーネルttyドライバで多くのデバッグを行った後、根本原因が小さなバッファ(1k)しかない特定のtty実装であることがわかりました。したがって、大きなものを貼り付けると、そのバッファを超えて上記の問題が発生します。 Chrome端末エミュレータを使用すると、独自のバッファがあるように見え、プロンプトを待ってから1行ずつptyに送信します。
答え1
SSHセッションに貼り付けることができるデータ量を増やすソリューションはありませんが、適切な解決策があります。回避策は、X11がOS Xクリップボードを渡してXサーバークリップボードと共有することです。
X11転送設定
リモートサーバーでX11転送を設定するには、/etc/ssh/sshd_config
ファイルを編集して行を変更する必要があります。
#X11Forwarding no
到着
X11Forwarding yes
あなたはする必要があります再起動ファイル更新/etc/ssh/sshd_config
後のSSHデーモン。今、xauth
あなたのプラットフォームに適したコマンドを使用してリモートサーバーにインストールする必要があります。
sudo pacman -S xorg-xauth # Arch-Linux
sudo apt-get install xauth # Debian/Ubuntu/etc.
sudo yum install xauth # RHEL/CentOS/Fedora/etc.
-X
その後、または-オプションを使用してY
サーバーに接続できます。
-X
X11転送が有効になります。-Y
信頼できるX11転送が有効になります。
OpenSSHのバージョンによっては、この手順が必要になる場合もあれば必要ではない場合もあります。OpenSSHには、次のメッセージを生成する既知のバグがあります。
チャネル 0 で X11 転送要求が失敗しました。
X11転送を使用してリモートサーバーに接続しようとした場合。回避策は、ファイルを編集して/etc/ssh/sshd_config
行を変更することです。
#X11UseLocalhost yes
到着
X11UseLocalhost no
これで、X11転送が有効になっているリモートサーバーに正常に接続できるようになりました。
OS XとXサーバーのクリップボードを共有する
OS XキーボードをXサーバーと共有するには、このファイル~/Library/Preferences/org.x.X11.plist
または~/Library/Preferences/org.macosforge.xquartz.X11.plist
。ls ~/Library/Preferences/ | grep X11
編集するファイルを決定するために使用できます。これを行うには、5つのブールキーを追加する必要があります。
sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select
おそらくそれを追加する最も簡単な方法は、ターミナルコマンドを使用することです。
defaults write org.macosforge.xquartz.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.macosforge.xquartz.X11 sync_pasteboard -boolean true
defaults write org.macosforge.xquartz.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.macosforge.xquartz.X11 sync_pasteboard_to_primary -boolean true
defaults write org.macosforge.xquartz.X11 sync_primary_on_select -boolean true
org.macosforge.xquartz.X11
次へ交換org.x.X11
。これを変更した後は、Xサーバーも再起動する必要があります。 SSHセッションからログアウトしてドックでアプリケーションを終了するだけで十分です。
またあるようだXQuartzのエラーOS Xの最新バージョンで利用可能であり、xclock
OS XとXサーバーのクリップボードを共有する前にOS X端末で実行する必要があります。
コピーして貼り付ける
これで、OS XクリップボードとXサーバークリップボードの間でコピーして貼り付けることができるすべての設定が完了しました。最後に行うことは、xclip
リモートサーバーにインストールすることです。コピーして貼り付けるあなたができることは何でもしてください。
コピーと貼り付けを初期化するために必要な順序は、まずSSHを介してリモートサーバーに接続することです。
$ ssh -X [user@]hostname
次に、別のターミナルウィンドウで次を実行します。
$ xclock
^C
^C
CTRL+C を示します。または、CMD + Cを使用してOS Xからコピーし、pbcopy
.pasteを使用してリモートサーバーに貼り付けますxclip
。
xclip -o
クリップボードの内容を印刷しますstdout
。xclip -i
stdin
クリップボードから読みます。