HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/cockpit/__pycache__/remote.cpython-39.pyc
a

�/�h�#�@s�ddlZddlZddlZddlZddlmZmZmZmZddl	m
Z
ddlmZm
Z
mZmZddlmZmZddlmZmZe�e�ZGdd	�d	e
j�ZGd
d�de�ZGdd
�d
e�ZdS)�N)�Dict�List�Optional�Tuple)�ferny�)�
JsonObject�	JsonValue�get_str�get_str_or_none)�Peer�	PeerError)�Router�RoutingRulec@s�eZdZUe�d�Zeeed<e	e
eeeeefed<eeed<eed<eed�dd�Zeeeeee
d	�d
d�Zeeeeed�d
d�ZdS)�PasswordResponderz!Enter passphrase for key '(.*)': �password�
hostkeys_seen�
error_message�password_attempts�rcCs||_g|_d|_d|_dS)Nr)rrrr)�selfr�r�2/usr/lib/python3.9/site-packages/cockpit/remote.py�__init__*szPasswordResponder.__init__)�reason�host�	algorithm�key�fingerprint�returnc�s|j�|||||f�dS)NF)r�append)rrrrrrrrr�
do_hostkey1szPasswordResponder.do_hostkey)�messages�prompt�hintrc�sxt�d||�tj�|�}|durH|�d�}t�d|�d|��|_dS|jdusVJ�|jdksdJ�|jd7_|jS)NzGot askpass(%s): %srzCThis is a passphrase request for %s, but we don't do those.  Abort.zlocked identity: r)	�logger�debugr�
PASSPHRASE_RE�	fullmatch�grouprrr)rr"r#r$�match�pathrrr�
do_askpass5s
zPasswordResponder.do_askpassN)�__name__�
__module__�__qualname__�re�compiler'r�str�__annotations__rr�intr�boolr!r,rrrrr!s

rcs�eZdZUdZeejed<eed<eeed<eeed<e	ed<dd�dd	�Z
d
d
edd��fdd
�Zedd�dd�Z
dd�dd�Zeeeeee	dd��fdd�Z�ZS)�SshPeerN�sessionr�userr�private)rc�s�|jdusJ�t�d|j|j|j�|j�d�\}}}|rP|��rP|}t|�}n
|j}d}t	|j
�}ddi}|j
dur�|jdd�n|jddd�z(|jj||j||j||d	�IdHW�n�t
tjf�y
}z0t�d
||�tddt|�d�|�WYd}~�n�d}~0tj�y�}z�|j�rT|jd
\}	}}
}}|�d|
�d|��|d�}
ni}
t|tj��rld}n|j�rzd}nd}t�dt|�||j|j||
�t||
|id�|�WYd}~n�d}~0tj�yP}ztt�d||�t�|jd�}d|v�r$|j
du�r$|jd
k�rd|d<nd|d<td|j�p2d|d�|�WYd}~nPd}~0tj�y�}z,t�d||�tdt|�d�|�WYd}~n
d}~00|j�dg�}|� |g�IdHdS)Nz1Starting ssh session user=%s, host=%s, private=%s�:ZStrictHostKeyCheckingZyes�1)ZNumberOfPasswordPrompts�no)ZPasswordAuthenticationZKbdInteractiveAuthentication)Z
login_name�portZhandle_host_key�optionsZinteraction_responderz connecting to host %s failed: %szno-host)�error�messager� )zhost-keyzhost-fingerprintzinvalid-hostkeyzunknown-hostkeyzunknown-hostzPSshPeer got a %s %s; private %s, seen hostkeys %r; raising %s with extra args %r)r?Zauth_method_resultsz$authentication to host %s failed: %sznot-providedrz	not-triedZdeniedzauthentication-failedz)unknown failure connecting to host %s: %szinternal-error)r@zcockpit-bridge)!r7r%r&r8rr9�
rpartition�isdigitr4rr�updateZconnect�OSError�socketZgaierrorr
r2rZSshHostKeyErrorr�
isinstanceZSshChangedHostKeyError�typeZSshAuthenticationError�dict�fromkeys�methodsrrZSshErrorZwrap_subprocess_argsZspawn)r�basename�colonZportstrrr=Z	responderr>�excZ_reasonrrrZ
error_argsr?�results�argsrrr�do_connect_transportOsj


�*�&

��(zSshPeer.do_connect_transportz
str | None)rr)r@rcs0||jkr|��n|dur,t��|||�dS�N)r�close�super�do_kill)rrr)r@��	__class__rrrU�s

zSshPeer.do_kill)r@rcCs:t|d��d�r6t|d�}|jd||jp*dd�d|_dS)NZ	challengezplain1:�cookieZ	authorize�)ZcommandrXZresponse)r
�
startswithZ
write_controlr)rr@rXrrr�do_authorize�s
zSshPeer.do_authorizecCs
d|_dSrRr)rrrr�do_superuser_init_done�szSshPeer.do_superuser_init_done)�routerrr8r>r9rcsjt��|�||_||_t|dd�|_||_t��|_	t
|dd�}|dvrPd}nd|i}|j||d�dS)Nrzinit-superuser)NZnoneF�id)�	init_host�	superuser)rTrrr8r
rr9r�Sessionr7rZstart_in_background)rr]rr8r>r9Zinit_superuserr`rVrrr�s
zSshPeer.__init__)r-r.r/r7rrrar3r2r5rQrrUr[r\rr�
__classcell__rrrVrr6Hs
Gr6cs\eZdZUeeeeeeefefed<�fdd�Z	e
eed�dd�Zdd�Z�Z
S)	�HostRoutingRule�remotescst��|�i|_dSrR)rTrrd)rr]rVrrr�szHostRoutingRule.__init__)r>rcsN�jdusJ��jjdusJ�t|d�jj�}|�jjkr>dSt|dd�}|t��krZd}|sv|�d�\}}}|ptd}t|dd�dkr�t|d�}nd}t|t�s�J�|dus�t|t�s�J�|dus�t|t�s�J�|||f�t�	d|�t�	d����j
v�rDt�	d	��j
�t�j||||dud
�}|���fdd��|�j
�<�j
�S)
Nrr8�@r7r9Zchannelz!Request for channel %s is remote.zkey=%szC%s is not among the existing remotes %s.  Opening a new connection.)r9cs�j���SrR)rd�__delitem__r�rrrr�<lambda>��z,HostRoutingRule.apply_rule.<locals>.<lambda>)
r]r_r
�getpassZgetuserrBrGr2r%r&rdr6Zadd_done_callback)rr>rr8Zuser_from_host�_Znonce�peerrrgr�
apply_rule�s4

zHostRoutingRule.apply_rulecCs t|j���D]}|��qdSrR)�setrd�valuesrS)rrlrrr�shutdown�szHostRoutingRule.shutdown)r-r.r/rrr2rrr3rrrmrprbrrrVrrc�s
"(rc)rjZloggingr0rF�typingrrrrZcockpit._vendorrZjsonutilrr	r
rrlrr
r]rrZ	getLoggerr-r%ZAskpassHandlerrr6rcrrrr�<module>s
'p