我正在远程连接到共享服务器,并且我希望在关闭连接之前在远程机器中自动执行一行代码(例如通过按 Ctrl+D)。
更具体地说,我想在我离开之前杀死 SSH 代理,因为我注意到即使在我离开后它仍然在运行。代理是由另一个程序启动的,所以我认为在我离开之前杀死它会更容易,而不是改变它的启动方式。
是否可以在关闭 SSH 连接之前自动运行任意命令(如下所示)?
# user attempts to close connection
# an arbitrary code or script runs
eval "$(ssh-agent -k)"
# connection is closed
Run Code Online (Sandbox Code Playgroud)
也许类似于-t
标志 ( ssh -t user@domain.com 'cd /some/path; bash -l'
) 的东西,但它在断开连接之前而不是在连接之后运行。
ibu*_*fen 15
你可以设置一个trap
在shell 退出.bashrc
时运行的:
就像是
trap 'test -n "$SSH_AGENT_PID" && eval "$(/usr/bin/ssh-agent -k)"' 0
Run Code Online (Sandbox Code Playgroud)
可选地添加一个例程 .bash_logout