(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ (keyscan))} spids:[7])]
      spids: [7]
    )
    (C {(rm)} {(-f)} {(${ VSub_Name OBJ) (/host.dsa)})
    (C {(start_sshd)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KEYTYPES)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(${ VSub_Name SSH)} {(-Q)} {(key-plain)})])
                left_token: <Left_Backtick '`'>
                spids: [30 38]
              )
            }
          spids: [29]
        )
      ]
      spids: [29]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(ssh_version)} {(1)}) terminator:<Op_Semi ';'>)]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KEYTYPES)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KEYTYPES) (' rsa1'))}
                  spids: [50]
                )
              ]
              spids: [50]
            )
          ]
          spids: [-1 47]
        )
      ]
      spids: [-1 58]
    )
    (ForEach
      iter_name: t
      iter_words: [{($ VSub_Name '$KEYTYPES')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(trace)} {(DQ ('keyscan type ') ($ VSub_Name '$t'))})
            (SimpleCommand
              words: [
                {(${ VSub_Name SSHKEYSCAN)}
                {(-t)}
                {($ VSub_Name '$t')}
                {(-p)}
                {($ VSub_Name '$PORT')}
                {(127.0.0.1)}
                {(127.0.0.1)}
                {(127.0.0.1)}
              ]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[101])
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[105])
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:r)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [109]
                )
              ]
              spids: [109]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {($ VSub_Name '$r')} {(-ne)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(fail)} 
                      {
                        (DQ ('ssh-keyscan -t ') ($ VSub_Name '$t') (' failed with: ') ($ VSub_Name '$r'))
                      }
                    )
                  ]
                  spids: [-1 126]
                )
              ]
              spids: [-1 139]
            )
          ]
          spids: [70 141]
        )
      spids: [66 68]
    )
  ]
)