
HostA(マイLinuxデスクトップ)からホストBにSSH経由で接続します。
$ ssh hostB -X
$ (nohup xterm &)
$ (nohup xterm &)
$ exit
## i don't get my prompt back
xtermウィンドウはホストAに表示されますが、ホストBにSSHを送信している端末は私にプロンプトを返しません。
Ctrl + Cを押すとプロンプトが表示されますが、2つのxtermウィンドウが閉じます。
他のホストのバックグラウンドでxtermを実行して元の端末を解放する方法はありますか?
ありがとう
- アンドリュー
答え1
-Xオプションは、SSH接続を介して実行されるX11トンネルを開きます。トンネルは、SSH接続が開いている場合にのみ存在できます。
要求されたタスクを実行するには、対話型セッションを含めずにSSH自体をバックグラウンドに配置する必要があります。
これを行う方法は少なくとも2つあります。 1つはSSH接続共有を設定することです。これにより、バックグラウンドでSSHを開き、共有接続を使用して複数のSSHセッションを開始できます。 SSHのマニュアルページにこれについての詳細があります。
より簡単な方法は、2つのxtermセッションを開くためにバックグラウンドでsshを開くことです。
ssh -n -X hostB sh -c "xterm&xterm" &
この-n
オプションは ssh が stdin を使用しないように指示し、バックグラウンドに配置するようにします。 SSHにパスワードが必要な場合は、最後のパスワードを省略し、&
パスワードを入力してバックグラウンドで一時停止することができます。