(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tid) op: Equal rhs: {(DQ ('login with different key types'))} spids: [7] ) ] spids: [7] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TIME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(which)} {(KW_Time time)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[19])] ) ] ) left_token: <Left_Backtick '`'> spids: [14 21] ) } spids: [13] ) ] spids: [13] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(KW_Bang '!')} {(-x)} {(DQ ($ VSub_Name '$TIME'))}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TIME) op:Equal rhs:{(DQ )} spids:[39])] spids: [39] ) ] spids: [-1 36] ) ] spids: [-1 43] ) (C {(cp)} {($ VSub_Name '$OBJ') (/sshd_proxy)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)}) (C {(cp)} {($ VSub_Name '$OBJ') (/ssh_proxy)} {($ VSub_Name '$OBJ') (/ssh_proxy_bak)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ktypes) op: Equal rhs: {(DQ ('dsa-1024 rsa-2048 rsa-3072 ed25519-512'))} spids: [66] ) ] spids: [66] ) (ForEach iter_name: i iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {($ VSub_Name '$SSH')} {(-Q)} {(key)})]) left_token: <Left_Backtick '`'> spids: [80 86] ) } ] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$i'))} arms: [ (case_arm pat_list: [{(ecdsa-sha2-nistp256)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ktypes) op: Equal rhs: {(DQ ($ VSub_Name '$ktypes') (' ecdsa-256'))} spids: [104] ) ] spids: [104] ) ] spids: [101 102 110 -1] ) (case_arm pat_list: [{(ecdsa-sha2-nistp384)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ktypes) op: Equal rhs: {(DQ ($ VSub_Name '$ktypes') (' ecdsa-384'))} spids: [116] ) ] spids: [116] ) ] spids: [113 114 122 -1] ) (case_arm pat_list: [{(ecdsa-sha2-nistp521)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ktypes) op: Equal rhs: {(DQ ($ VSub_Name '$ktypes') (' ecdsa-521'))} spids: [128] ) ] spids: [128] ) ] spids: [125 126 134 -1] ) ] spids: [92 98 137] ) ] spids: [89 139] ) spids: [79 87] ) (ForEach iter_name: kt iter_words: [{($ VSub_Name '$ktypes')}] do_arg_iter: False body: (DoGroup children: [ (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/key.) ($ VSub_Name '$kt')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bits) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(${ VSub_Name kt)}) (C {(awk)} {(-F-)} {(SQ <'{print $2}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [165 181] ) } spids: [164] ) ] spids: [164] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:type) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(${ VSub_Name kt)}) (C {(awk)} {(-F-)} {(SQ <'{print $1}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [185 201] ) } spids: [184] ) ] spids: [184] ) (C {(printf)} { (DQ ('keygen ') ($ VSub_Name '$type') (', ') ($ VSub_Name '$bits') (' bits:') (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ) } ) (AndOr children: [ (C {(${ VSub_Name TIME)} {(${ VSub_Name SSHKEYGEN)} {(-b)} {($ VSub_Name '$bits')} {(-q)} {(-N)} {(SQ )} {(-t)} {($ VSub_Name '$type')} {(-f)} {($ VSub_Name '$OBJ') (/key.) ($ VSub_Name '$kt')} ) (C {(fail)} { (DQ ('ssh-keygen for type ') ($ VSub_Name '$type') (', ') ($ VSub_Name '$bits') (' bits failed') ) } ) ] op_id: Op_DPipe ) ] spids: [151 258] ) spids: [147 149] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tries) op:Equal rhs:{(DQ ('1 2 3'))} spids:[261])] spids: [261] ) (ForEach iter_name: ut iter_words: [{($ VSub_Name '$ktypes')}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:htypes) op: Equal rhs: {($ VSub_Name '$ut')} spids: [279] ) ] spids: [279] ) (ForEach iter_name: ht iter_words: [{($ VSub_Name '$htypes')}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$ht')} arms: [ (case_arm pat_list: [{(dsa-1024)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {(ssh-dss)} spids: [310] ) ] spids: [310] ) ] spids: [307 308 312 -1] ) (case_arm pat_list: [{(ecdsa-256)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {(ecdsa-sha2-nistp256)} spids: [318] ) ] spids: [318] ) ] spids: [315 316 320 -1] ) (case_arm pat_list: [{(ecdsa-384)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {(ecdsa-sha2-nistp384)} spids: [326] ) ] spids: [326] ) ] spids: [323 324 328 -1] ) (case_arm pat_list: [{(ecdsa-521)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {(ecdsa-sha2-nistp521)} spids: [334] ) ] spids: [334] ) ] spids: [331 332 336 -1] ) (case_arm pat_list: [{(ed25519-512)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {(ssh-ed25519)} spids: [342] ) ] spids: [342] ) ] spids: [339 340 344 -1] ) (case_arm pat_list: [{(rsa-) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {(ssh-rsa)} spids: [351] ) ] spids: [351] ) ] spids: [347 349 353 -1] ) ] spids: [300 304 356] ) (C {(trace)} { (DQ ('ssh connect, userkey ') ($ VSub_Name '$ut') (', hostkey ') ($ VSub_Name '$ht') ) } ) (Subshell child: (CommandList children: [ (C {(grep)} {(-v)} {(HostKey)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)}) (C {(echo)} {(HostKey)} {($ VSub_Name '$OBJ') (/key.) ($ VSub_Name '$ht')}) (C {(echo)} {(PubkeyAcceptedKeyTypes)} {($ VSub_Name '$t')}) (C {(echo)} {(HostKeyAlgorithms)} {($ VSub_Name '$t')}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [408] ) ] spids: [369 406] ) (Subshell child: (CommandList children: [ (C {(grep)} {(-v)} {(IdentityFile)} {($ VSub_Name '$OBJ') (/ssh_proxy_bak)}) (C {(echo)} {(IdentityFile)} {($ VSub_Name '$OBJ') (/key.) ($ VSub_Name '$ut')} ) (C {(echo)} {(PubkeyAcceptedKeyTypes)} {($ VSub_Name '$t')}) (C {(echo)} {(HostKeyAlgorithms)} {($ VSub_Name '$t')}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)} spids: [453] ) ] spids: [414 451] ) (Subshell child: (CommandList children: [ (C {(printf)} {(SQ <'localhost-with-alias,127.0.0.1,::1 '>)}) (C {(cat)} {($ VSub_Name '$OBJ') (/key.) ($ VSub_Name '$ht') (.pub)}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$OBJ') (/known_hosts)} spids: [479] ) ] spids: [459 477] ) (SimpleCommand words: [{(cat)} {($ VSub_Name '$OBJ') (/key.) ($ VSub_Name '$ut') (.pub)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$OBJ') (/authorized_keys_) ($ VSub_Name '$USER')} spids: [492] ) ] ) (ForEach iter_name: i iter_words: [{($ VSub_Name '$tries')}] do_arg_iter: False body: (DoGroup children: [ (C {(printf)} { (DQ ('userkey ') ($ VSub_Name '$ut') (', hostkey ') (${ VSub_Name ht) (':') (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ) } ) (C {(${ VSub_Name TIME)} {(${ VSub_Name SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)} {(999.999.999.999)} {(true)} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fail)} { (DQ ('ssh userkey ') ($ VSub_Name '$ut') (', hostkey ') ($ VSub_Name '$ht') (' failed') ) } ) ] spids: [-1 556] ) ] spids: [-1 570] ) ] spids: [508 573] ) spids: [504 506] ) ] spids: [296 576] ) spids: [292 294] ) ] spids: [275 578] ) spids: [271 273] ) ] )