    # File lib/chef/knife/ssh.rb, line 172
          def session_from_list(list)
            list.each do |item|
              Chef::Log.debug("Adding #{item}")
              session_opts = {}

              ssh_config = Net::SSH.configuration_for(item)

              # Chef::Config[:knife][:ssh_user] is parsed in #configure_user and written to config[:ssh_user]
              user = config[:ssh_user] || ssh_config[:user]
              hostspec = user ? "#{user}@#{item}" : item
              session_opts[:keys] = File.expand_path(config[:identity_file]) if config[:identity_file]
              session_opts[:keys_only] = true if config[:identity_file]
              session_opts[:password] = config[:ssh_password] if config[:ssh_password]
              session_opts[:port] = config[:ssh_port] || Chef::Config[:knife][:ssh_port] || ssh_config[:port]
              session_opts[:logger] = Chef::Log.logger if Chef::Log.level == :debug

              if !config[:host_key_verify]
                session_opts[:paranoid] = false
                session_opts[:user_known_hosts_file] = "/dev/null"
              end

              session.use(hostspec, session_opts)

              @longest = item.length if item.length > @longest
            end

            session
          end