如何使用scp自动输入密码?

问题描述 投票:0回答:1

我为此尝试过期待

这就是我想要做的。

使用scp

copy> 1gig文件复制到网络设备。我为此使用下面的代码。

child = pexpect.spawn(f'scp /folder/images/{image_name} {device_name}:/location:') child.expect("password:") child.sendline(pwd) child.expect(pexpect.EOF)

此代码停留在下一行。

2019-10-17 05:42:51,309 - file_sync.py - INFO - Copying the <imageName> to <Device_name>

它不显示密码提示,似乎一切都在后台静默发生,几秒钟后,我在控制台上看到超时期望错误。

是否有使其互动的方式(类似于子流程)或任何其他可以交互输入密码并在控制台上查看文件传输进度的方法?

child = pexpect.spawn(f'scp /folder/images/{image_name} {device_name}:/location:')
child.expect("password:")
child.sendline(pwd)
child.expect(pexpect.EOF)
python pexpect
1个回答
0
投票

默认情况下,pexpect不显示生成的进程的输出。您可以这样写:

child = pexpect.spawn(...)
child.logfile_read = sys.stdout
...
© www.soinside.com 2019 - 2024. All rights reserved.