如果我使用以下代码(当然是在连接到ssh服务器之后):
client = client.get_transport().open_session()
我从字面上找不到get_transport()
的适当信息(甚至不在文档中),但我希望它返回一个套接字(tcp)对象,如果这是真的,open_session()
做什么?
文档说明如下:
请求一个新的通道到服务器,类型为"会话"。这只是调用open_channel的别名,参数为"session"。
这对我来说不是很清楚,"一个新的通道到类型为session的服务器"是什么意思?有人能给我解释一下这两个函数的作用吗?
SSH协议有多个层。
参见https://en.wikipedia.org/wiki/Secure_Shell#Architecture
"transport"Layer是最底层。但它仍然在TCP之上,所以在Python的Socket
之上。我相信在Paramiko中,Transport
类实际上实现了"传输"层和"用户认证";层。因此,它负责创建"连接"。层,也就是会话和通道。