我可以在 Perl 中更改用于通过 Net::SSH 登录的终端类型吗?

我可以在 Perl 中更改用于通过 Net::SSH 登录的终端类型吗?

当我通过 Perl 中的 Net::SSH 登录某个特定服务器(我没有管理员访问权限)时,出现以下错误:

 %SECURITY-SSHD-4-WARNING_LOGIN : The requested term-type '' is not supported 

(我也不想永久更改我的终端类型)。

我的部分代码如下,

 my $ssh = Net::SSH::Expect->new (
                host => "X.X.X.X", 
                user => 'bnegrao', 
                raw_pty => 1
  );
    eval
    {
         $ssh->login();
    };

是否可以在 Perl 中通过 Net::SSH 登录时更改终端类型?

答案1

perl 代码只是运行 ssh,它从环境中导出 TERM,因此您可以在登录之前更改 perl 环境:

$ENV{TERM} = "vt100";
$ssh->login();

如有必要,您可以先保存并在登录调用后立即恢复。

相关内容