enabled sftp private key support (instead of password)

this is the code to make #9182 work
> Note: !!foo is used in Javascript to enforce type conversion. So if foo is a string, !foo converts it to a boolean (false), and !!foo converts it back.

Yes. At least in PHP this should always be an explicit casting: `(bool) $foo`. (And in JavaScript possibly too, but things might look a bit more ugly there.)

> Trouble here is that PHP will consider the strings 0 or false as being a boolean false, so better use empty() instead. (we had weird issues related to that in the past)

The definition of empty($foo) is basically isset($foo) && $foo, so there does not seem to be any gain in this case.