我知道这不是 LocalCommand 与 SSH 的预期用例,但如果我想运行命令,然后直接使用 LocalCommand 退出 SSH 会话,是否可能?
例如:
LocalCommand <some command>; exit
我尝试了上面的方法,但它似乎不起作用并且仍然生成外壳。
答案1
解决方案一:
ssh [email protected] 'cd foo/bar && rm *.foobar'
这仍然会在标准输出中打印输出,但执行命令后默认退出。
解决方案2:
针对您的用例的解决方案:根据您提到的评论,您将仅将 ssh 用于此 ssh 命令,
您可以编辑名为的文件,/etc/profile
在最后一行,只需输入要执行的所有命令,然后键入 exit
前任 :
ls / > /tmp/output
exit
这将运行命令并退出会话
你可以只使用, 来调用它ssh user@host
,不需要其他任何东西。
PS:这只会运行命令并退出,记住,如果你想通过 ssh 进入系统进行任何操作,这不会让你,除非你删除最后一行的出口。
答案2
本地命令是 ssh 客户端进程的子进程。如果想关闭会话,可以kill客户端,即kill本地命令的父级。
LocalCommand kill $PPID
然后 SSH 将连接到远程主机,并且一旦执行身份验证,但在运行远程命令之前,客户端将被终止。
我不明白有什么意义。为什么不运行无操作远程命令(ssh ''
或ssh :
),该命令将在登录后立即退出?