注销后在屏幕上显示ssh代理程序

在第一台机器上启动屏幕上运行的命令后,如果我不再连接到第一台机器上,继续能够在第二台机器上运行命令,最好的方法是什么?

这是背景。 我有一个长期的运行命令,需要定期从其他机器收集信息。 它通过发送ssh命令并读取输出来完成。 这目前通过ssh代理工作,因为我用ForwardAgentlogin。

目前我可以ssh到第一台机器,运行命令,它的工作原理。 同样,我可以启动一个屏幕,运行命令,断开屏幕,并继续运行。 但是,如果我的ssh连接到第一台机器,那么ssh代理停止工作,屏幕上运行的命令将中断。

我希望命令能够正确运行,即使我不再连接到任何一台机器。

AFAIK,这是不可能的。 代理使用的私钥永远不会传输到中间服务器。 如果与中间服务器的连接丢失,那么根本没有什么可用于身份validation。 代理协议的devise使您的私钥永远不会从运行代理的系统中转移出去。

如果您经常从这个中间系统开始工作,那么最好的select可能是生成该系统唯一的密钥对,并在您login并启动stream程时将其加载到在该系统上运行的代理程序中。 显然,您还需要将相关公钥发布到您需要访问的所有系统。

你有没有试过看“nohup”?

http://linux.101hacks.com/unix/nohup-command/

在这种情况下,这似乎对你有用。

您可以使用$ man nohup查看更多信息