在关闭 SSH 连接之前自动运行代码

在关闭 SSH 连接之前自动运行代码

我正在远程连接到共享服务器,并且希望在远程计算机中自动执行一行代码我关闭连接(例如按 Ctrl+D)。

更具体地说,我想在离开之前杀死 SSH 代理,因为我注意到即使在我离开后它仍然在运行。该代理是由另一个程序启动的,所以我认为在我离开之前杀死它比改变它的启动方式更容易。

是否可以自动运行任意命令——如下所示——关闭 SSH 连接?

# user attempts to close connection

# an arbitrary code or script runs
eval "$(ssh-agent -k)"

# connection is closed

也许类似于-t标志 ( ),但它在断开连接之前运行,而不是在连接之后运行。ssh -t [email protected] 'cd /some/path; bash -l'

答案1

您可以设置一个trap运行.bashrc时间外壳退出:

就像是

trap 'test -n "$SSH_AGENT_PID" && eval "$(/usr/bin/ssh-agent -k)"' 0

可以选择添加一个例程.bash_logout

相关内容