File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/client/ssh/__pycache__/shell.cpython-310.pyc
o
�N�g�@ � @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlZ ddl
Z ddlZ ddlZ ddl
Z e�e�Ze�dej�Ze�d�Ze�dej�ZdZe�dej�ZdZe�d e d
�Ze jj�d�pfdZe jj�d�podZe jj�d
�pxd
Zdd� Z dd� Z!G dd� d�Z"dS )z#
Manage transport commands via ssh
� Nz"(?:.*)[Pp]assword(?: for .*)?:\s*$z.*\(yes\/no\).*zEnter passphrase for keyzS[salt:sudo:d11bd4221135c33324a6bdc09674146fbfdf519989847491e34a689369bbce23]passwd:zU\[salt:sudo:d11bd4221135c33324a6bdc09674146fbfdf519989847491e34a689369bbce23\]passwd:ZA_edbc7885e4f9aac9b83b35999b68d015148caf467b78fa39c05f669c0ff89878z(?:^|\r?\n)z(?:\r?\n|$)z
ssh-keygen�sshZscpc C sP t ddd| dddg}tj�| �}|r!tj�|�s!t�tj�| �� t�|� dS )z.
Generate a key for use with salt-ssh
z-P� z-fz-t�rsaz-qN)�SSH_KEYGEN_PATH�os�path�dirname�isdir�makedirs�
subprocess�call)r �cmdr � r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/client/ssh/shell.py�gen_key* s
r c K sl |d r,zddl }|j| fi |��}W |S ty+ t�d� t�tjj j
� Y |S w t| fi |��}|S )zB
Return the correct shell interface for the target system
�winrmr Nz)The saltwinshell library is not available)�saltwinshell�Shell�ImportError�log�error�sys�exit�salt�defaults� exitcodesZ
EX_GENERIC)�opts�kwargsr �shellr r r � gen_shell5 s �
�r c @ s� e Zd ZdZ d%dd�Zdd� Zdd � Zd
d� Zdd
� Zdd� Z dd� Z
dd� Zefdd�Z
dd� Zdd� Zdd� Zd&dd�Zdd� Zd d!� Zd'd#d$�ZdS )(r zH
Create a shell connection object to encapsulate ssh executions
NFc C s| || _ |�d�| _|| _|| _|rt|�n|| _|| _|| _|| _ | | _
|
| _|| _|| _
|| _|d u r9d| _d S || _d S )Nz[]r )r �strip�host�user�port�str�passwd�priv�priv_passwd�timeout�sudo�tty�mods�identities_only�remote_port_forwards�ssh_options)�selfr r! r"