…ond timeout for enabling root login
…m 2.2.1 to 2.2.2.
…reating SSH keys.
It's easy to end up with an empty key filename if using directory globbing. Previously this wouldn't be caught because we'd do a File.expand_path on '', which just translates to the current working directory, which is a file that exists. That tripped up our existing validation. Now we check if the key_file value is empty in addition to being nil, preventing the problem altogether.
We can move to Open3.popen3 now because in Ruby 1.9+ Open3.popen3 support providing a block that can capture stdout & stderr, while also giving us access to the process exit status.