perl - 使用 SAFEGUARD 为 HP Nonstop Guardian 编写 SSH 脚本
问题描述
我们有一些 perl 脚本可以在带有 telnet 的 hp 不间断机器上的 Guardian os 上执行操作。现在我们必须关闭 telnet 并且必须使用安全用户的 ssh(舒适)连接。
我们尝试连接下面的 perl 代码,似乎一切正常,但 shell 没有保持打开状态。
use Net::SSH::Perl;
use Term::ReadKey;
my $host = "XX.XXX.XXX.XXX";
my $user = "safeguarduser";
my $pass = "";
my $ssh = Net::SSH::Perl->new($host, options => [
"Cipher +aes256-ctr", "MACs +hmac-sha2-256", "HostKeyAlgorithms +ssh-dss"], debug => 1);
$ssh->login($user, $pass);
调试日志说:
p-066280682253: Reading configuration data C:\Users\User\.ssh\config
p-066280682253: Reading configuration data C:\WINDOWS\ssh_config
p-066280682253: Connecting to XX.XXX.XXX.XXX, port 22.
p-066280682253: Remote version string: SSH-2.0-1.37g sshlib: TXXXXH0X_14MAY2018_comForte_SSH2_0105a:\TXXXX.$SSH01
p-066280682253: Remote protocol version 2.0, remote software version 1.37g sshlib: TXXXXH0X_14MAY2018_comForte_SSH2_0105a:\TXXXX.$SSH01
p-066280682253: Net::SSH::Perl Version 2.14, protocol version 2.0.
p-066280682253: No compat match: 1.37g sshlib: TXXXXH0X_14MAY2018_comForte_SSH2_0105a:\TXXXX.$SSH01.
p-066280682253: Connection established.
p-066280682253: Sent key-exchange init (KEXINIT), waiting for response.
p-066280682253: Using diffie-hellman-group-exchange-sha256 for key exchange
p-066280682253: Host key algorithm: ssh-dss
p-066280682253: Algorithms, c->s: aes256-ctr hmac-sha2-512 none
p-066280682253: Algorithms, s->c: aes256-ctr hmac-sha2-512 none
p-066280682253: Entering Diffie-Hellman Group Exchange.
p-066280682253: SSH2_MSG_KEX_DH_GEX_REQUEST(2048<4096<8192) sent
p-066280682253: Sent DH Group Exchange request, waiting for reply.
p-066280682253: Received 2048 bit DH Group Exchange reply.
p-066280682253: Generating new Diffie-Hellman keys.
p-066280682253: Entering Diffie-Hellman key exchange.
p-066280682253: Sent DH public key, waiting for reply.
p-066280682253: Received host key, type 'ssh-dss'.
p-066280682253: Host 'XX.XXX.XXX.XXX' is known and matches the host key.
p-066280682253: Verifying server signature.
p-066280682253: Send NEWKEYS.
p-066280682253: Waiting for NEWKEYS message.
p-066280682253: Enabling encryption/MAC/compression.
p-066280682253: Sending request for user-authentication service.
p-066280682253: Service accepted: ssh-userauth.
p-066280682253: Trying empty user-authentication request.
p-066280682253: Login completed, opening dummy shell channel.
p-066280682253: channel 0: new [client-session]
p-066280682253: Requesting channel_open for channel 0.
p-066280682253: channel 0: open confirm rwindow 1048576 rmax 57344
p-066280682253: Got channel open confirmation, requesting shell.
p-066280682253: Requesting service shell on channel 0.
我们可以连接并使用 Putty。putty 设置中的 exec 命令是“tacl”。使用 plink 它仅在我们使用 putty 会话名称时才有效。使用 param 和 -c tacl 我们得到与使用 perl 脚本相同的错误,没有 shell。
(信息:客户端是Windows PC)
希望有人可以帮助我们,我们已经尝试了很多。
感谢你并致以真诚的问候
解决方案
你能解释一下在你不得不切换到 SSH 之前你对 telnet 会话做了什么吗?我认为您可能最终会使用 OSS(NonStop 的 UNIX 个性),因为 puTTY(可能还有 plink)模拟了 XTerm。如果在 SSH 协商期间指定的终端类型不是“TN6530-8”(NonStop Guardian 终端仿真器),NonStop SSH 会自动将您放入 OSS。
我刚刚尝试了 plink(Windows 10 CMD 提示符)并得到了这个,这是预期的:
C:\Users\andy\Downloads>plink -ssh -pw xxxxxxx andyw@nnn.nn.nnn.nn gtacl -c 'status *,user'
使用键盘交互式身份验证。
最后登录:2018 年 12 月 3 日,05:37
最后一次不成功的尝试:2018 年 12 月 3 日,05:31 总失败次数:20
Process Pri PFR %WT Userid 程序文件 Hometerm
$Z4YN B 0,119 146 001 8,1 $SYSTEM.SYS07.TACL $ZTN0.#PTB2NV5
$SSLS 0,504 148 001 8,1 $SYSTEM.SSLPRXY.SSLPRXY $ZPTY.#ZWN0517
$SSFS 0,749 148 001 8,1 $SYSTEM.SSLPRXY.SSLFTPS $ZPTY.#ZWN0517
$Z2TJ 2,74 149 005 8,1 $SYSTEM.SYS07.TACL $ZPTY.#ZWN0882
$Z5MZ 2,75 149 001 8,1 $SYSTEM.SYS07.TACL $ZPTY.#ZWN0886
$Z5NR 2,254 149 004 8,1 $SYSTEM.SYS07.TACL $ZHOME
2,1019 148 001 8,1 $SYSTEM.SYS07.OSH $ZPTY.#ZWN0886
X 2,1098 148 004 8,1 /bin/ksh $ZPTY.#ZWN0886
$Z5NQ X 2,1139 149 001 8,1 /bin/gtacl $ZHOME
$Z4YN 3,9 146 001 8,1 $SYSTEM.SYS07.TACL $ZTN0.#PTB2NV5
$Z5MZ B 3,42 149 001 8,1 $SYSTEM.SYS07.TACL $ZPTY.#ZWN0886
$Z2TJ B 3,201 149 001 8,1 $SYSTEM.SYS07.TACL $ZPTY.#ZWN0882
$SSLS B 3,1014 148 001 8,1 $SYSTEM.SSLPRXY.SSLPRXY $ZPTY.#ZWN0517
$SSFS B 3,1018 148 001 8,1 $SYSTEM.SSLPRXY.SSLFTPS $ZPTY.#ZWN0517
$CAIL 3,1045 145 011 8,1 $SYSTEM.SYS07.TELSERV $ZTN0.#PTB2P0J
C:\Users\andy\Downloads>
推荐阅读
- reactjs - 带有尾随 / 的 BrowserRouter 导致清单错误
- python-3.x - 试图让用户通过整数选择选择要打印的列表
- c - 如何在 C 中打印/检测空值
- android - 相机在 Monaca Debugger 中有效,但在 Debug Build 中无效
- reactjs - jest - 嵌套在 React SFC 组件中时未在快照中生成连接的组件?
- r - 如何使用emmeans从log(x + 1)变量中获得绝对差估计和置信区间
- android - android获取一定范围内的字母
- python - 为什么在 Python3 中使用 True 比使用 1 慢
- c# - asp.net 核心 3 和 identityserver4
- javascript - 如何修复'ReferenceError:没有定义你好'