PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oB]c@sdZddlZddlZddlmZddlmZddlmZddlm Z dZ dd Z d Z dd d Z d ZdS(s SSH Authkey Fingerprints ------------------------ **Summary:** log fingerprints of user ssh keys Write fingerprints of authorized keys for each user to log. This is enabled by default, but can be disabled using ``no_ssh_fingerprints``. The hash type for the keys can be specified, but defaults to ``md5``. **Internal name:** `` cc_ssh_authkey_fingerprints`` **Module frequency:** per instance **Supported distros:** all **Config keys**:: no_ssh_fingerprints: authkey_hash: iN(t SimpleTable(tug_util(tssh_util(tutilcCsEg}x8tdt|dD]}|j|||d!qW|S(Nii(trangetlentappend(tbin_hashtsplit_upti((sP/usr/lib/python2.7/site-packages/cloudinit/config/cc_ssh_authkey_fingerprints.pyt _split_hash&stmd5cCsk|s dSyBtj|}|jtj|djt|jSWntt fk rfdSXdS(Ntt:t?( thashlibtnewtupdatetbase64t b64decodetjoinR t hexdigestt TypeErrort ValueError(tb64_textt hash_meththasher((sP/usr/lib/python2.7/site-packages/cloudinit/config/cc_ssh_authkey_fingerprints.pyt_gen_fingerprint-scCsSt|j|j|j|jgrO|jrO|jjjdkrOtSntS(Nsssh-dsssssh-rsa(sssh-dsssssh-rsa( tanytkeytypeRtcommenttoptionstlowertstriptTruetFalse(tentry((sP/usr/lib/python2.7/site-packages/cloudinit/config/cc_ssh_authkey_fingerprints.pyt_is_printable_key<s $ s ci-info: c CsO|s'd||f}tj|dSdd|ddg}t|}xi|D]a}t|rP|jpndt|j|pd|jpd|jpdg} |j | qPqPW|j } | j } t t | dt } tjd||fd | g} | j| x4| D],}tjd d ||fd td tqWdS(Ns9%sno authorized ssh keys fingerprints found for user %s. tKeytypesFingerprint (%s)tOptionstCommentt-tkeys#Authorized keys from %s for user %st+ttexts%s%s tstderrtconsole(Rt multi_logRR%RRRRRtadd_rowt get_stringt splitlinesRtmaxtcentertextendR#R"(tusertkey_fnt key_entriesRtprefixtmessaget tbl_fieldsttblR$trowt authtbl_st authtbl_linestmax_lentlinestline((sP/usr/lib/python2.7/site-packages/cloudinit/config/cc_ssh_authkey_fingerprints.pyt_pprint_key_entriesDs0              c Cstj|jdtr/|jd|dStj|dd}tj||j\}}xB|j D]4\}} t j |\} } t || | |qlWdS(Ntno_ssh_fingerprintss>Skipping module named %s, logging of ssh fingerprints disabledt authkey_hashR ( Rtis_truetgetR#tdebugtget_cfg_option_strRtnormalize_users_groupstdistrotitemsRtextract_authorized_keysRC( tnametcfgtcloudtlogt_argsRtuserst_groupst user_namet_cfgR7R8((sP/usr/lib/python2.7/site-packages/cloudinit/config/cc_ssh_authkey_fingerprints.pythandlebs  (t__doc__RRtcloudinit.simpletableRtcloudinit.distrosRt cloudinitRRR RR%RCRW(((sP/usr/lib/python2.7/site-packages/cloudinit/config/cc_ssh_authkey_fingerprints.pyts