次のシナリオがあります。
UBUNTUを実行しているPC#1、UBUNTUを実行しているPC#2
PC#1からssh(ターミナル)をPC#2に開きます。両方のキーボード(#1&#2)からのPC#1入力で端末に表示したい...
助けてください。PS私はbashスクリプトを使用しています...
次のシナリオがあります。
UBUNTUを実行しているPC#1、UBUNTUを実行しているPC#2
PC#1からssh(ターミナル)をPC#2に開きます。両方のキーボード(#1&#2)からのPC#1入力で端末に表示したい...
助けてください。PS私はbashスクリプトを使用しています...
回答:
screenやtmuxのような「ターミナルマルチプレクサ」を使用する必要があります。
次にtmux
、PC#2でセッションを開始できます(たとえば、使用しています)。
PC#2 $> tmux
PC#1からsshするとき(tmux
PC#2で起動したのと同じユーザーで!)、実行中のセッションにアタッチするだけです:
ssh@PC#2 $> tmux attach
これで、PC#2のユーザーとPC#1のユーザー(SSH経由で接続)の両方が同じ端末セッションを共有し、お互いの入力と相対出力を見ることができます。
明らかに、tmux
ssh経由で起動し、PC#2から接続できます。複数の独立したセッションを実行して、それらの一部またはすべてに接続することもできます。
私はあなたが両方としてリンクmangpagesを読むことをお勧めscreen
し、tmux
非常に強力であり、用途やcustomizabileパラメータがたくさんあります。
たとえば、両方を使用すると、異なるユーザーが接続できる共有セッションを(ある程度)簡単に作成できるため、PC#2とsshの両方で同じユーザーでログインする必要はありません。
これを行うには多くの異なる方法があると確信していますが、使用する方法は次のとおりです。
ホストPC#2でtmuxセッションを作成します。ssh経由でPC#2に接続します。既存のtmuxセッションに接続します。
tmuxはすべてのディストリビューションで使用できますが、デフォルトではインストールされません。PC#2にインストールする必要があります。
このソリューション内では、わずかに異なる3つのケースがあります。
両方のユーザーが同じユーザー名を使用してPC#2に接続します。
tmux
コマンドを使用してtmuxを開くtmux attach
コマンドを使用してセッションに参加します異なるユーザー名でPC#2に接続し、ユーザーが他のユーザーのファイルにアクセスしても問題ありません。
groupadd temporaryGroup
usermod -a -G temporaryGroup usernameOfHisUser
usermod -a -G temporaryGroup usernameOfOtherUser
tmux -S /tmp/tmux_someKnownName
コマンドを使用してtmuxを開きます。/tmp/tmux_someKnownName
は、たとえば、次を使用して、グループ所有権を新しく作成されたグループに転送します。chgrp temporaryGroup /tmp/tmux_someKnownName
tmux -S /tmp/tmux_someKnownName attach
彼らはPC#2に接続し、他のユーザーに自分の権利の使用を許可したくありません。
これで端末を共有し、他の人がこのコンソールに入力した内容も確認できます。