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

时间:2018-03-09 06:18:48

标签: ssh remote-access remote-server openssh ssh-tunnel

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

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

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

PS:能够将我的/本地/接收器IP保持为变量并使用该变量将是有帮助的,因为我可能必须使用多个系统或者在某个时候更改我自己的ip。此外,实施密码保护,只有我的应用程序/管理员可以更改/使用此渠道将有所帮助。

1 个答案:

答案 0 :(得分:0)

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

  • 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密钥并更改脚本中的<your-local-machine>地址。