我正在使用 paramiko 通过 ssh 运行一些命令。我注意到 paramiko 需要 2-3 秒来打开一个连接,而命令行 ssh 客户端几乎是即时的。
使用一些打印,我发现症结是 Transport.auth_publickey(它使用的是发现的 ~/.ssh/id_dsa)。这与命令行 ssh 使用的身份验证方法相同,那么为什么 paramiko 运行得更慢呢?
我用来连接的代码非常简单:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('myhostname', **{'username': 'root'})