Currently though the: *x unknown yet to accept* is not handled anyway. The current logic just checks for unaccepted key line count greater than 1 and then accepts all keys and continues. So it's not even waiting around for unknown clients to connect.

Under that assumption (it would be impossible to know when the *yet to accept* come online, I modified things to at least account for both accepted and unaccepted keys currently present, what do you think of this?  Just thinking about the all the different situations you bring up though, I think it would be better to just put the responsibility on the user, especially since X unknown clients could be out there about to connect after this check happens.

I know it's not great for security, but since vagrant is pretty much a local only kind of tool, `auto_accept: True` looks like a better and better suggestion =) I can't imagine someone is running vagrant based VMs in a production environment. I've seen stranger things though.

```ruby
def count_unaccepted
        value = 0
        @machine.communicate.sudo("salt-key -l pre | wc -l") do |type, output|
          begin
            value = Integer(output) - 1
          rescue
          end
        end
      end

      def count_accepted
        value = 0
        @machine.communicate.sudo("salt-key -l acc | wc -l") do |type, output|
          begin
            value = Integer(output) - 1
          rescue
          end
        end
      end

      def accept_keys
        if @config.accept_keys
          if !@machine.communicate.test("which salt-key")
            @machine.env.ui.info "Salt-key not installed!"
          else
            @machine.env.ui.info "Waiting for minion key..."
            key_staged = false
            attempts = 0

            accepted = count_accepted
            total_keys = accepted + count_unaccepted

            if total_keys == accepted
              key_staged = true
            end

            while !key_staged
              attempts += 1
              if count_unaccepted > 0
                key_staged = true
              end
              sleep 1
              if attempts > 10
                raise Salt::Errors::SaltError, :not_received_minion_key
              end
            end

            @machine.env.ui.info "Accepting minion key."
            @machine.communicate.sudo("salt-key -A")
          end
        end
      end
```