2

如何在不涉及任何通过 Python 和 Paramiko 的 OSS 功能的情况下建立与 HP NonStop TACL 进程的直接连接?

在 HP NonStop SSH 手册中,我可以看到这一点(http://www.nonstoptools.com/manuals/FTP-SSH.pdf):

使用远程 SSH 客户端获取 TACL 提示

您也可以直接建立与 TACL 进程的连接,而无需涉及任何 OSS 功能。直接 TACL 访问由 SSH2 作为 SSH2 子系统提供。您可以通过使用 -s 选项和“tacl”作为子系统名称来指定启动远程 SSH 客户端来连接到 TACL 子系统。与普通的 shell 会话一样,您必须指定 Guardian 用户 ID 和 IP 地址或主机名,其中 SSH2 作为 SSH 命令的参数进行侦听:

m.horst@np-dev02:~> ssh -s comf.mh@10.0.0.199 tacl    
comf.mh@10.0.0.199's password:    
TACL (T9205D46 - 19OCT2004), Operating System G06, Release G06.25.00    
(C)1985 Tandem (C)2004 Hewlett-Packard Development Company, L.P.    
CPU 1, process has no backup    
February 10, 2006 13:09:41    
(Invoking $SYSTEM.SYSTEM.TACLLOCL)    
(Invoking $DATA1.MHHOME.TACLCSTM)    
Current volume is $DATA1.MHHOME    
1>

我的问题是如何tacl通过 Paramiko 指定子系统名称?

在 PuTTY 中是这样完成的:连接 -> SSH -> 远程命令 -> “tacl”

知道如何在 Paramiko 中做同样的事情吗?

4

1 回答 1

1

我的问题是如何tacl通过 Paramiko 指定子系统名称?

ssh = paramiko.SSHClient()

# authenticate here
chan = ssh.get_transport().open_session()
chan.invoke_subsystem("tacl")
stdin = chan.makefile_stdin("wb", bufsize)
stdout = chan.makefile("r", bufsize)
stderr = chan.makefile_stderr("r", bufsize)

在 PuTTY 中是这样完成的:Connections->SSH->Remote command->tacl

不,这不对。PuTTY 无法执行自定义子系统。因此,如果您可以tacl在 PuTTY 中使用,则意味着您不需要使用子系统。你在 PuTTY 中所做的就是简单地执行tacl command

在 Paramiko 中,这很简单:

(stdin, stdout, stderr) = ssh.exec_command("tacl")
于 2021-04-26T07:14:07.740 回答