(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: [16777215 36] ) ] spids: [16777215 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 16777215] ) (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 16777215] ) (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 16777215] ) ] 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:') (Lit_Other '\\') (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 259] ) spids: [147 149] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tries) op:Equal rhs:{(DQ ('1 2 3'))} spids:[262])] spids: [262] ) (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: [280] ) ] spids: [280] ) (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: [311] ) ] spids: [311] ) ] spids: [308 309 313 16777215] ) (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: [319] ) ] spids: [319] ) ] spids: [316 317 321 16777215] ) (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: [327] ) ] spids: [327] ) ] spids: [324 325 329 16777215] ) (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: [335] ) ] spids: [335] ) ] spids: [332 333 337 16777215] ) (case_arm pat_list: [{(ed25519-512)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {(ssh-ed25519)} spids: [343] ) ] spids: [343] ) ] spids: [340 341 345 16777215] ) (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: [352] ) ] spids: [352] ) ] spids: [348 350 354 16777215] ) ] spids: [301 305 357] ) (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: 16777215 arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)} spids: [409] ) ] spids: [370 407] ) (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: 16777215 arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)} spids: [454] ) ] spids: [415 452] ) (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: 16777215 arg_word: {($ VSub_Name '$OBJ') (/known_hosts)} spids: [480] ) ] spids: [460 478] ) (SimpleCommand words: [{(cat)} {($ VSub_Name '$OBJ') (/key.) ($ VSub_Name '$ut') (.pub)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$OBJ') (/authorized_keys_) ($ VSub_Name '$USER')} spids: [493] ) ] ) (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) (':') (Lit_Other '\\') (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: [16777215 558] ) ] spids: [16777215 572] ) ] spids: [509 575] ) spids: [505 507] ) ] spids: [297 578] ) spids: [293 295] ) ] spids: [276 580] ) spids: [272 274] ) ] )