User: Update prompt for SSH key passphrase prompt (#84521)

* update prompt for SSH key passphrase prompt
* introduce timeout in SSH key passphrase interaction

Fixes: #84484

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
pull/84554/head
Abhijeet Kasurde 12 months ago committed by GitHub
parent d79b706c06
commit 8588401387
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,4 @@
---
bugfixes:
- user - Update prompt for SSH key passphrase (https://github.com/ansible/ansible/issues/84484).
- user - Set timeout for passphrase interaction.

@ -490,6 +490,7 @@ uid:
import ctypes.util
from datetime import datetime
import grp
import calendar
import os
@ -1279,11 +1280,16 @@ class User(object):
env=env)
out_buffer = b''
err_buffer = b''
first_prompt = b'Enter passphrase'
second_prompt = b'Enter same passphrase again'
prompt = first_prompt
start = datetime.now()
timeout = 900
while p.poll() is None:
r_list = select.select([master_out_fd, master_err_fd], [], [], 1)[0]
first_prompt = b'Enter passphrase (empty for no passphrase):'
second_prompt = b'Enter same passphrase again'
prompt = first_prompt
now = datetime.now()
if (now - start).seconds > timeout:
return (1, '', f'Timeout after {timeout} while reading passphrase for SSH key')
for fd in r_list:
if fd == master_out_fd:
chunk = os.read(master_out_fd, 10240)

Loading…
Cancel
Save