使用python脚本在ssh中插入密码

时间:2015-08-11 14:25:28

标签: python ssh

我需要运行一个Python脚本,它将从用户那里获取密码并使用SSH登录到特定的框中。

password = getpass.getpass('password:')
...
...
command='ssh' + ' ' + "IPname"

p = subprocess.Popen(command,shell=True,stdout=PIPE).communicate(password)[0]

但上面的脚本无效,仍在寻找密码。

1 个答案:

答案 0 :(得分:2)

像这样使用paramiko,因为你不能对子进程使用密码认证,你必须创建和别名并执行ssh somealias。 Paramiko可以在不设置别名的情况下轻松进行身份验证:

password = getpass.getpass()

ssh = paramiko.SSHClient(

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('some.host.com', username=username, password=password)

或者您也可以将公钥与paramiko一起使用:

pathToKey = "/some/path/here"

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('some.host.com', username=username, key_filename=pathToKey)