public function __toString()
{
$parts = ['ssh'];
if ($this->privateKey) {
$parts[] = '-i ' . $this->privateKey->getPrivateKeyFile();
}
if (!is_null($this->jumpHost)) {
if ($output = Registry::get('output')) {
/* @var $output OutputInterface */
$output->writeln("[Using jump host: " . $this->jumpHost->getDefaultUsername() . '@' . $this->jumpHost->getPublicIpAddress() . "]");
}
$proxyCommand = new Command($this->jumpHost->getSshConnection(), 'nc %h %p');
$parts[] = '-o ProxyCommand="' . $proxyCommand->__toString() . '"';
}
if ($this->multiplex) {
$connection = "~/mux_{$this->username}@{$this->host}:22";
self::$multiplexedConnections[$connection] = "{$connection} {$this->host}";
$parts[] = "-o ControlPersist=yes -o ControlMaster=auto -S {$connection}";
}
$parts[] = '-o ConnectTimeout=5';
//$parts[] = '-o LogLevel=QUIET';
$parts[] = '-o StrictHostKeyChecking=no';
// $parts[] = '-t'; // Force pseudo-tty allocation.
$parts[] = "{$this->username}@{$this->host}";
return implode(' ', $parts);
}