public getSshConnection ( $multiplex = null ) : |
||
리턴 |
public function getSshConnection($multiplex = null)
{
$jumpHost = $this->getJumpHost();
return new Connection($this->getDefaultUsername(), $jumpHost ? $this->getPrivateIpAddress() : $this->getConnectionIp(), $this->getPrivateKey(), $jumpHost, !is_null($multiplex) ? $multiplex : $this->multiplexSshConnection);
}
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); }