通过 ssh 从 ssh-remote 服务器将终端命令发送回本地?

Posted

技术标签:

【中文标题】通过 ssh 从 ssh-remote 服务器将终端命令发送回本地?【英文标题】:Sending terminal commands from ssh-remote server back to local through ssh? 【发布时间】:2018-08-17 16:00:42 【问题描述】:

我正在尝试从远程 linux 服务器向本地 Mac 发送终端命令。这是目前要生成的 本地通知

(using terminal command: 
"""osascript -e 'display notification "Message" with title "Title" subtitle "Subtitle" sound name "chimp"')"""

对于由我在服务器上运行的应用程序确定的更改,但我认为,如果我对此进行了排序, 稍后我可能会将其用于其他用途/发送/交换其他命令。 目前,我首先在服务器中 ssh。我不完全理解这个过程,因为它是在我的 系统。有人能解释一下这是如何实现的吗?

PS:能够将我的/本地/接收者 IP 保留为变量并使用该变量会很有帮助,因为我可能不得不对多个系统执行此操作,或者有时更改我自己的 ip。此外,实施密码保护以便只有我的应用程序/管理员可以更改/使用此频道会有所帮助。

【问题讨论】:

【参考方案1】:

您可以在远程主机上创建一个脚本:

SSH 到您的本地计算机 执行osascript 命令

但是你需要配置它,这样当脚本通过 SSH 连接到你的本地机器时你就不必输入密码了。为此,您可以将远程主机(可能是 root)上用户的公共 SSH 密钥复制到本地计算机上用户的 ~/.ssh/authorized_keys 文件中。

在远程主机上:

# copy the public key for the user on the remote host to the local host
cat ~/.ssh/id_rsa.pub | ssh <user>@<your-local-machine> 'cat >> ~/.ssh/authorized_keys'

然后写一个脚本保存到远程主机上

#!/bin/bash

ssh <user>@<your-local-machine> osascript -e 'display notification "Message" with title "Title" subtitle "Subtitle" sound name "chimp"'

远程主机上的程序可以在适当的时候执行该脚本。

如果您需要通过 SSH 连接到新机器,则必须再次复制 SSH 密钥并更改脚本中的 &lt;your-local-machine&gt; 地址。

【讨论】:

以上是关于通过 ssh 从 ssh-remote 服务器将终端命令发送回本地?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 SSH 隧道通过 AWS 堡垒/跳转服务器从笔记本电脑访问 phpMyAdmin 到使用 .ssh/config 的 EC2 实例

GitHub 操作:通过 SSH 从 GitHub 访问服务器

通过 ssh 多次跳转后从服务器传输文件,net cat 不可用

如何通过主机从外部通过 SSH 连接到 VirtualBox 来宾? [关闭]

MySQLDump 从通过 SSH 连接的远程服务器到本地机器

如何从 docker 容器通过 ssh 传输 TCP 流量?