我可以在 netmiko/paramiko 中获取 ssh 连接的源端口吗?
Can I get the source port of an ssh connection in netmiko/paramiko?
我有一个应用程序,我通过控制台服务器在 LAB 环境中配置 Cisco 路由器。
可以通过 SSH 访问路由器。有时在程序 exit/crash 之后 ssh 连接没有终止。
重新启动后,我无法登录到该特定路由器,同时控制台服务器上的端口被阻止。
要解锁它,我需要终止该 ssh 会话。
如果我有更多正在使用的会话,我不知道我需要终止其中的哪些,所以我想在 paramiko/netmiko.
建立连接时获取源端口
以前有人这样做过吗,或者有人有想法。
要获取 Paramiko SSH 连接的底层套接字,请使用 ssh.get_transport().sock
。
然后,看
通常,这会起作用:
port = ssh.get_transport().sock.getsockname()[1]
但这做出了一些假设。由于您不需要以编程方式使用端口号,更安全的方法是只打印 getsockname()
的完整结果,而不是假设结果是一个端口位于索引 1.
的元组
我有一个应用程序,我通过控制台服务器在 LAB 环境中配置 Cisco 路由器。
可以通过 SSH 访问路由器。有时在程序 exit/crash 之后 ssh 连接没有终止。
重新启动后,我无法登录到该特定路由器,同时控制台服务器上的端口被阻止。
要解锁它,我需要终止该 ssh 会话。
如果我有更多正在使用的会话,我不知道我需要终止其中的哪些,所以我想在 paramiko/netmiko.
以前有人这样做过吗,或者有人有想法。
要获取 Paramiko SSH 连接的底层套接字,请使用 ssh.get_transport().sock
。
然后,看
通常,这会起作用:
port = ssh.get_transport().sock.getsockname()[1]
但这做出了一些假设。由于您不需要以编程方式使用端口号,更安全的方法是只打印 getsockname()
的完整结果,而不是假设结果是一个端口位于索引 1.