如何以编程方式获取有状态的ssh shell会话?

Jos*_*son 6 ssh perl openssh

我正在开发一个需要向远程服务器发送命令的应用程序.使用大量SSH客户端库可以轻松发送命令.

但是,我希望在每个命令之间保留shell状态(即当前工作目录,环境变量等).我见过的所有客户端库都没有这样做.例如,以下是不能执行我想要的代码示例:

use Net::SSH::Perl;
my $server = Net::SSH::Perl->new($host);
$server->login($user, $pass);

$server->cmd('cd /var');
$server->cmd('pwd');      # I _would like_ this to output /var
Run Code Online (Sandbox Code Playgroud)

在发送命令之间将执行其他任务,因此组合命令$server->cmd('cd /var; pwd')是不可接受的.

dgr*_*ant 0

我不确定你到底在做什么,但你可以启动一个 SSH 会话。如果你真的不能这样做,也许你可以对所有内容使用绝对路径。