通过LSF启动时检索SSH的输出

通过LSF启动时检索SSH的输出,ssh,tty,lsf,Ssh,Tty,Lsf,我正在使用localhost.run打开隧道,所以我想启动 ssh -R 80:localhost:8080 ssh.localhost.run 唯一的问题是,我将它作为bash脚本的一部分通过LSF启动 我得到了错误 Pseudo-terminal will not be allocated because stdin is not a terminal. 我用这个选项来解决这个问题 -T Disable pseudo-tty allocation. 我现在的命令是 ssh -

我正在使用localhost.run打开隧道,所以我想启动

ssh -R 80:localhost:8080 ssh.localhost.run
唯一的问题是,我将它作为bash脚本的一部分通过LSF启动

我得到了错误

Pseudo-terminal will not be allocated because stdin is not a terminal.
我用这个选项来解决这个问题

-T      Disable pseudo-tty allocation.
我现在的命令是

ssh -T -R 80:localhost:8080 ssh.localhost.run
这是我的bash脚本的最后一个命令。 我也尝试过使用
-tt
,结果相同()

当我从tty启动脚本时,我得到了预期的输出(类似于
Connect to的消息)http://user.localhost.run 或https://user.localhost.run

当我通过LSF(使用bsub)启动它时,我不会从SSH获得任何输出(而是从其他命令获得输出)


我还尝试将ssh的输出重定向到一个文件:从命令行启动时,它可以正常工作,但从LSF启动时就不行了。

有几个想法。如果ssh只是转发一个端口而没有运行命令。你需要a-N吗?另外,在ssh命令行上放置一个-v。它可以提供一些线索。最后。我不明白问题的几个部分。当你说localhost时,你真的是说你连接到localhost了吗?以及端口转发到本地主机?另一个让我困惑的部分是预期的输出。这一定是ssh守护进程正在启动的命令正确吗?(不能在本地主机上运行,对吗?)试着告诉bsub将您的ssh stdout和stderr保存在一个文件中,比如
bsub-oo~/ssh.%J.out
,可能ssh正在生成一些被丢弃的输出。谢谢,我尝试了bpeek,但没有成功。有一些想法。如果ssh只是转发一个端口而没有运行命令。你需要a-N吗?另外,在ssh命令行上放置一个-v。它可以提供一些线索。最后。我不明白问题的几个部分。当你说localhost时,你真的是说你连接到localhost了吗?以及端口转发到本地主机?另一个让我困惑的部分是预期的输出。这一定是ssh守护进程正在启动的命令正确吗?(不能在本地主机上运行,对吗?)试着告诉bsub将您的ssh stdout和stderr保存在一个文件中,比如
bsub-oo~/ssh.%J.out
,可能ssh正在生成一些正在删除的输出。谢谢,我尝试了bpeek,但没有成功。