ssh_config:指定登录后远程机器上执行的命令

Mar*_*ter 22 ssh

这是我之前问题的扩展。我需要在 ssh 登录时在远程机器上运行本地存储的命令(即mount /home)。目前,我正在使用:

ssh -t mymachine.example.com 'mount /home ; /bin/bash'
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想知道是否可以将此命令放入我的命令中,.ssh/config这样我就不必每次都输入它。我找到了一个LocalCommand选项,但我没有看到任何RemoteCommand选项。

重要的是将command-to-be-executed其存储在本地计算机上,因为它将包含打开加密磁盘的密码。这就是我无法将命令放入.profile远程机器的原因。

小智 22

RequestTTY yes
RemoteCommand screen -UDr
Run Code Online (Sandbox Code Playgroud)


小智 7

这是在 OpenSSH 7.6 中添加的:

添加 RemoteCommand 选项以在 ssh 配置文件中指定命令,而不是在客户端的命令行上提供。这允许配置文件指定将在远程主机上执行的命令。

参考:https : //www.openssh.com/txt/release-7.6


Mar*_*ich 6

之前在 SuperUser 上已经问过这个问题。第一个答案使用不符合您要求的远程文件,但建议使用本地别名的第二个答案可能是您问题的解决方案。

将要执行的命令存储在本地机器上很重要,因为它将包含打开加密磁盘的密码。这就是我无法将命令放入远程机器上的 .profile 的原因。

这可能不安全。如果我将echo命令用作 ssh 命令,它会显示在ps远程服务器上:

martin@martin ~ % ssh dev2 "echo hello; ps aux|grep echo"

hello
root     25358  0.0  0.0   5848  1296 ?        Ss   11:27   0:00 bash -c echo hello; ps aux|grep echo
root     25362  0.0  0.0   5012   828 ?        S    11:27   0:00 grep echo
Run Code Online (Sandbox Code Playgroud)

  • `ps` 输出*是*来自远程机器。关键是:你作为远程命令提供给 `ssh` 的所有内容都将显示在远程服务器上的 `ps` 中。 (6认同)