kinit 使用 Python 子进程

sdf*_*sdf 4 python ssh subprocess

我正在尝试通过 subprocess + ssh 连接到远程服务器以列​​出目录中的文件并打印该目录中文件的内容。为此,我需要将 kinit 作为 Python 子进程运行。有关如何执行此操作的任何想法?假设用户使用他们的 kerberos id 和密码登录..

谢谢你。

Jer*_*man 6

如果您想运行kinit以让用户获得 Kerberos 票证,您只需提示输入他们的密码(例如使用getpass模块),然后将该输入传递给子进程。

这看起来像这样:

from subprocess import Popen, PIPE

kinit = '/usr/bin/kinit'
kinit_args = [ kinit, '%s@%s' % (userid, realm) ]
kinit = Popen(kinit_args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
kinit.stdin.write('%s\n' % password)
kinit.wait()
Run Code Online (Sandbox Code Playgroud)

这以通常的方式建立了一张票,它应该被任何以通常的方式寻找 Kerberos 票的东西(在该片段来自的代码中,它用于验证 LDAP 连接):https : //github.com/ jeremyroman/pyceo/blob/master/ceo/ldapi.py