HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3.9/site-packages/cockpit/__pycache__/remote.cpython-39.pyc
a

���e�#�@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�)�JsonDocument�
JsonObject�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
eeeedd
��fdd�Zedd
�dd�Z
dd�dd�Zeeeeee	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|f|id�|
��|�WYd}~n�d}~0tj�yX}zvt�d||�dd�|jD�}d|v�r,|j
du�r,|jd
k�r$d|d<nd|d<td|j�p:d|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: %scSsi|]
}|d�qS)znot-providedr)�.0�methodrrr�
<dictcomp>��z0SshPeer.do_connect_transport.<locals>.<dictcomp>rz	not-triedZdeniedzauthentication-failedz)unknown failure connecting to host %s: %szinternal-error)r@zcockpit-bridge)r7r%r&r8rr9�
rpartition�isdigitr4rr�updateZconnect�OSError�socketZgaierrorr
r2rZHostKeyErrorr�
isinstanceZChangedHostKeyError�typeZAuthenticationError�methodsrrZSshErrorZwrap_subprocess_argsZspawn)r�basename�colonZportstrrr=Z	responderr>�excZ_reasonrrrZ
error_argsr?�results�argsrrr�do_connect_transportOsj


�*�,

��(zSshPeer.do_connect_transport)rr)rcs.||jkr|��n|dur*t��d|�dS�N)r�close�super�do_kill)rrr)��	__class__rrrW�s

zSshPeer.do_kill)r@rcCs:t|d��d�r6t|d�}|jd||jp*dd�d|_dS)NZ	challengezplain1:�cookieZ	authorize�)ZcommandrZZresponse)r
�
startswithZ
write_controlr)rr@rZrrr�do_authorize�s
zSshPeer.do_authorizecCs
d|_dSrTr)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)rVrrr8r
rr9r�Sessionr7rZstart_in_background)rr_rr8r>r9Zinit_superuserrbrXrrr�s
zSshPeer.__init__)r-r.r/r7rrrcr3r2r5rSrWr	r]r^rr�
__classcell__rrrXrr6Hs
Gr6cs\eZdZUeeeeeeefefed<�fdd�Z	e
eed�dd�Zdd�Z�Z
S)	�HostRoutingRule�remotescst��|�i|_dSrT)rVrrf)rr_rXrrr�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���SrT)rf�__delitem__r�rrrr�<lambda>�rEz,HostRoutingRule.apply_rule.<locals>.<lambda>)
r_rar
�getpassZgetuserrFrKr2r%r&rfr6Zadd_done_callback)rr>rr8Zuser_from_host�_Znonce�peerrrir�
apply_rule�s4

zHostRoutingRule.apply_rulecCs t|j���D]}|��qdSrT)�setrf�valuesrU)rrmrrr�shutdown�szHostRoutingRule.shutdown)r-r.r/rrr2rrr3rr	rnrqrdrrrXrre�s
"(re)rkZloggingr0rJ�typingrrrrZcockpit._vendorrZjsonutilrr	r
rrmrr
r_rrZ	getLoggerr-r%ZInteractionResponderrr6rerrrr�<module>s
'p