简洁版本:我需要给我 4 岁的儿子一台笔记本电脑,以便他可以从地球的另一端与我通过 Skype 进行通话。我能从他的法定监护人那里得到的唯一帮助就是在指定时间打开笔记本电脑并输入 WiFi 密码。因此,我需要能够远程控制笔记本电脑(特别是动态更改音频级别),但我不能要求对方拥有静态 IP 或执行任何奇特的操作,例如打开端口 22。
我正在考虑使用 Ubuntu 远程控制加上一个小脚本,每隔 X 分钟向我发送一次机器的 IP。怎么做?还有更好的建议吗?
长版:我住的地方离我 4 岁的儿子几千英里。他的母亲在指定时间开始会议,但随后她离开房间,很少回来。我的孩子经常不小心按到某个键,然后他就看不到我了,或者我就听不到他的声音了。或者麦克风增益太低。
因此,我需要在笔记本电脑上执行以下操作并将其发送给他们,一台仅用于电信的笔记本电脑:创建一个 4 岁的抗拒用户,除了盯着屏幕之外没有权限做任何其他事情请讲。我需要远程访问计算机、动态更改麦克风和扬声器音量、打开和移动 Skype 窗口,甚至通过软件更新执行更复杂的任务。
我的前妻永远不会为我做像在她特定的路由器型号中打开端口 22 这样耗时的事情,因此 ssh 不在菜单中。据称,使用 Ubuntu 可以轻松远程控制另一个桌面。问题是,除非有静态IP,否则它将无法工作
答案1
(现在我说这太宽泛了,但这里是一可能的解决方案)。
在互联网上拥有一台linode
具有静态 IP 地址的服务器(例如 a 或类似服务器)。
该服务器应该是 openvpn 服务器。
您女儿的笔记本电脑应该启动与此服务器的 openvpn 连接。您可以在启动时执行此操作,甚至在她登录之前。
您可以配置 openvpn,以便她的 VPN IP 地址始终为 192.100.100.10
你可以有你的机器也VPN为192.100.100.20
现在,您可以从您的机器上通过ssh 192.100.100.10
命令行访问她的机器并更改设置(补丁、更改音量、麦克风等)。
答案2
另一种解决方案将使用 SSH 隧道。
就像史蒂芬·哈里斯一样,我是它的忠实粉丝linode
,因此我们还假设您在互联网上有一台具有公共静态 IP 的服务器。 (尽管任何提供商的任何服务器都可以)。
在服务器上,创建一个私钥-公钥对,ssh-keygen
并将公钥附加到authorized_hosts
文件中,例如
ssh-keygen -f ~/.ssh/daughters-laptop -N ""
cat ~/.ssh/daughters-laptop.pub >> ~/.ssh/authorized_hosts
将私有 ( ~/.ssh/daughters-laptop
) 复制到笔记本电脑。并确保笔记本电脑在启动时执行两件事:
启动
sshd
(systemctl enable sshd
在大多数当今的系统上)运行
ssh -R localhost:6667:localhost:22 -i /path/to/private/key/daughters-laptop user@server
(大多数系统允许在 中完成/etc/rc.local
)
现在,要登录笔记本电脑,您只需登录服务器,然后执行:
ssh -p 6667 user_at_laptop@localhost
笔记:
您需要以与您女儿相同的用户身份登录笔记本电脑(或者能够
su
登录),否则 Xorg 权限疯狂会确保。您可以设置第二对密钥(或重复使用相同的密钥)以方便登录笔记本电脑。
保护私钥!您刚刚在您孩子使用的笔记本电脑上创建了一个后门,任何拥有该密钥的人都可以登录它。使用 生成的密钥
-N ""
是明文形式的。