python 无法通过getpass将密码传递给SSH

mwngjboj  于 2023-03-21  发布在  Python
关注(0)|答案(1)|浏览(113)

我的代码如下:

def acces_machine_connnect():
    print(namess.secnd_banner)
    login = input('Login: ')
    passwd = getpass.getpass('Password:')
    
    ssh_proxy = paramiko.SSHClient()
    ssh_proxy.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_proxy.connect(Acces_machine, username=login, password=passwd)
    return ssh_proxy

当我在家里测试时,它工作正常,但在工作中,连接到SSH时出现了问题,但在将passwd = getpass.getpass('Password:')更改为普通input后,它完全正常。你知道为什么会发生这种情况吗?或者我如何更改代码使其正常工作?

bfnvny8b

bfnvny8b1#

您可以尝试使用input而不是getpass,因为getpass可能会出现bug,具体取决于您使用的终端
下面是如何做到这一点:

import paramiko

def access_machine_connect():
    print(namess.secnd_banner)
    login = input('Login: ')
    print("Warning: Password input will be visible")
    passwd = input('Password: ')

    ssh_proxy = paramiko.SSHClient()
    ssh_proxy.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_proxy.connect(Acces_machine, username=login, password=passwd)
    return ssh_proxy

相关问题