我有以下情况:
PC#1 运行 UBUNTU,PC#2 运行 UBUNTU
我从 PC#1 打开 ssh(终端)到 PC#2。我想在 PC#1 上的终端中看到来自两个键盘(#1 和 #2)的输入...
请帮忙。PS 我正在使用 bash 脚本...
答案1
tmux
然后您可以在 PC#2 上启动会话(假设您正在使用):
PC#2 $> tmux
当你从 PC#1 进行 ssh 时(使用与 PC#2 中启动的相同用户tmux
!),你只需连接到正在运行的会话:
ssh@PC#2 $> tmux attach
现在,PC#2 上的用户和 PC#1 上的用户(通过 SSH 连接)共享相同的终端会话,并且他们可以看到彼此的输入和相对输出。
显然,您可以tmux
通过 ssh 启动并从 PC#2 连接。您还可以运行多个独立的会话并附加到其中任何一个或全部。
我建议你阅读链接为两者的 mangpages screen
,tmux
它们非常强大,有很多用途和可自定义的参数。
例如,使用两者都很容易创建可由不同用户附加的共享会话,因此你不需要在 PC#2 上和通过 ssh 使用同一个用户登录。
答案2
我确信有很多不同的方法可以做到这一点,但我会使用以下方法:
创建一个tmux主机 PC#2 上的会话;通过 ssh 连接到 PC#2;附加到现有的 tmux 会话。
tmux 适用于每个发行版,但默认未安装,您必须在 PC#2 上安装它。
在这个解决方案中,我看到三种略有不同的情况:
两个用户使用相同的用户名连接到 PC#2;
tmux
PC#2 上的用户使用命令打开 tmux- PC#1 上的用户使用与 PC#2 用户相同的用户名通过 PC#2 上的 ssh 连接,并使用
tmux attach
命令加入会话
他们使用不同的用户名连接到 PC#2,并且用户可以访问其他用户的文件;
- PC#2 上的用户创建一个组,包括他自己的用户名和 PC#2 上其他用户的用户名,例如使用:
groupadd temporaryGroup
usermod -a -G temporaryGroup usernameOfHisUser
usermod -a -G temporaryGroup usernameOfOtherUser
- PC#2 上的用户使用命令打开 tmux
tmux -S /tmp/tmux_someKnownName
; - PC#2 上的用户将组所有权转移
/tmp/tmux_someKnownName
到新创建的组,例如使用:
chgrp temporaryGroup /tmp/tmux_someKnownName
- PC#1 上的用户通过 ssh 连接到 PC#2,并使用以下命令附加到现有的 tmux 会话:
tmux -S /tmp/tmux_someKnownName attach
他们连接到 PC#2 并且不想让其他用户使用他们的权利。
- 与第一种情况类似,但为此连接临时创建一个新用户
现在他们共享一个终端,并且还可以看到其他人在这个控制台上输入的内容。