+
    Û1jë  ã                   óF   € ^ RI t ^ RIHt ^ RIHtHtHt  ! R R]]4      tR# )é    N)Úglob)ÚPluginÚIndependentPluginÚ	PluginOptc                   óV   a € ] tR t^t o RtRtRt]! RRRR7      .tR t	R t
R	 tR
tV tR# )ÚSshzSecure shell serviceÚsshÚ	userconfsFz5Changes whether module will collect user .ssh configs)ÚdefaultÚdescc                óì   € V P                  R RRR/4       . ROpV P                  V4       V P                  V4       V P                  R4      '       d   V P	                  4        V P                  R4       R# )z/etc/ssh/sshd_config$Ússhd_configz/etc/ssh/ssh_config$Ú
ssh_configr
   zsshd -TN)z/etc/ssh/ssh_configz/etc/ssh/sshd_configz/etc/ssh/sshd_config.d/*)Úadd_file_tagsÚadd_copy_specÚincluded_configsÚ
get_optionÚuser_ssh_files_permissionsÚadd_cmd_output)ÚselfÚsshcfgss   & Ú8/usr/lib/python3/dist-packages/sos/report/plugins/ssh.pyÚsetupÚ	Ssh.setup   sq   € à×ÑØ# ]Ø" Lð
ô 	ò
ˆð 	×Ñ˜7Ô#à×Ñ˜gÔ&ð �?‰?˜;×'Ò'Ø×+Ñ+Ô-ð 	×Ñ˜IÖ&ó    c           	     ó˜  €  V Uu. uF  p\        VRR7      NK  	  up UUu. uF  pV F  pVNK  	  K  	  pppV FÚ  pVP                  R4      R,          p\        V P                  V4      RRR7      ;_uu_ 4       pV F‹  p	\	        V	P                  4       4      ^ 8X  g   V	P                  R4      '       d   K:  V	P                  4       P                  R4      '       g   Ka  V	P                  4       p
V P                  V
^,          VR	7       K�  	  R
R
R
4       KÜ  	  R
# u upi u uppi   + '       g   i     Kü  ; i  \         d     R
# i ; i)zInclude subconfig files T)Ú	recursiveÚ/ÚrúUTF-8©ÚencodingÚ#Úinclude)ÚtagsNéÿÿÿÿ)	r   ÚsplitÚopenÚ	path_joinÚlenÚ
startswithÚlowerr   Ú	Exception)r   r   ÚcopyspecÚfilesÚfÚcfgfilesÚsshcfgÚtagÚcfgfileÚlineÚconfargs   &&         r   r   ÚSsh.included_configs6   s4  € ð	ñ DKó ÙCJ°x”D˜¨T×2Á7ò ôñ �eã �aó á ñ ñ  ð ñ ó
 #�Ø—l‘l 3Ó'¨Õ+�Ü˜$Ÿ.™.¨Ó0°#Ø#*÷,õ ,Ø/6Û '˜ä˜tŸz™z›|Ó,°Ô1°T·_±_ÀS×5IÒ5IÙ$àŸ:™:›<×2Ñ2°9×=Ô=Ø&*§j¡j£l˜GØ ×.Ñ.¨w°q­zÀÐ.ÖDñ !(÷,ñ ,ó #ùò	 ùó÷,÷ ,ð ,ûô ô 	Úð	úsP   ‚D: †DœD: ¢D ¶AD: Á;:D&Â6$D&Ã.D&ÄD: ÄD: Ä&D7Ä1	D: Ä:E	ÅE	c                ó2  € \         P                  ! 4       p/ p \        RRRR7      ;_uu_ 4       pV F   pVP                  4       R,          w  rVWbV&   K"  	  RRR4       0 RmpT Fy  pTP                  T9   d9   Y(P                  ,          T9   d"   T P                  RTP                   R	24       KL  T P                  TP                  R
4      p	T P                  T	4       K{  	  R#   + '       g   i     L•; i  \         d    T P                  R4        R# i ; i)zˆ
Iterate over .ssh folders in user homes to see their permissions.

Bad permissions can prevent SSH from allowing access to given user.
z/proc/mountsr   r    r!   :é   é   NNzCouldn't read /proc/mountszSkipping capture in z  because it's a remote directoryz.ssh>   ÚnfsÚnfs4Úautofs)
ÚpwdÚgetpwallr(   r'   r-   Ú
_log_errorÚpw_dirÚ	_log_infor)   Úadd_dir_listing)
r   Ú
users_dataÚfs_mount_infoÚmounts_filer5   Úfs_fileÚ	fs_vstypeÚnon_local_fsÚuserÚhome_dirs
   &         r   r   ÚSsh.user_ssh_files_permissionsN   sï   € ô —\’\“^ˆ
àˆð	Ü�n c°G×<Õ<ÀÛ'�DØ+/¯:©:«<¸Õ+<Ñ(�WØ-6 'Ó*ñ (÷ =ò 1ˆãˆDØ�{‰{˜mÔ+Ø!§+¡+Õ.°,Ô>Ø—‘Ø.¨t¯{©{¨mØ:ð;ôñ Ø—~‘~ d§k¡k°6Ó:ˆHØ× Ñ  Ö*ó ÷ =×<ûô ô 	Ø�O‰OÐ8Ô9Úð	ús.   ™C6 ¯'C#ÁC6 Ã#C3	Ã.C6 Ã3C6 Ã6DÄD© N)ÚservicesÚsecurityÚsystemÚidentity)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
short_descÚplugin_nameÚprofilesr   Úoption_listr   r   r   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      sB   ø‡ € à'€Jà€KØ=€Hñ 	�+ uð4ô	6ð€Kò'ò2÷0+ð +r   r   )r>   r   Úsos.report.pluginsr   r   r   r   rM   r   r   Ú<module>r^      s$   ðó Ý ß CÑ CôZ+ˆ&Ð#ö Z+r   