我正在使用tkinter构建一个桌面应用程序。同时,使用Paramiko进行ssh连接。该应用程序有一个“connect”按钮,用于调用函数
def checkAuth():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, 22, username=userName, password=password)
下面是对tkinter应用程序中函数的调用。
"Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\****\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:/Users/****/PycharmProjects/tracer/tracer.py", line 18, in checkAuth
ssh.connect(host, 22, username=userName, password=password)
File "C:\Users\****\PycharmProjects\tracer\venv\lib\site-packages\paramiko\client.py", line 368, in connect
raise NoValidConnectionsError(errors)
paramiko.ssh_exception.NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 172.16.127.6 or fe80::d99d:ff15:3fc1:482e
connectButton = Button(connect, text="Connect", width=6, command=checkAuth)
但是得到“paramiko.ssh_exception.NoValidConnectionsError:[Errno None]无法连接到www.example.com上的端口22172.16.127.6“作为输出。”
我可以运行这个函数作为一个独立的脚本,它连接良好。我可以ssh通过cmd和putty到主机没有问题。它似乎只有当使用tkinter应用程序中的函数,我遇到这个问题。
非常感谢你们的帮助。
1条答案
按热度按时间hwamh0ep1#
这是一个我如何ssh到远程机器的例子:
我在tkinter上试过了,点击按钮时连接正常。我看不出和你做的有什么不同,也许可以添加client.load_system_host_keys(),看看是否有帮助。只需使用你的用户名和密码而不是私钥来验证,而不是像我在例子中所做的那样。