Example #1
0
 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);
 }
Example #2
0
 public function getPrivateKey()
 {
     $keyName = $this->getKeyName();
     if (empty($keyName)) {
         return null;
         // throw new \Exception('No KeyName found');
     }
     return PrivateKey::get('keys/' . $keyName . '.pem');
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $key = $input->getArgument('key');
     $identity = new \AwsInspector\Ssh\Identity(\AwsInspector\Ssh\PrivateKey::get($key), true);
     $identity->loadIdentity();
 }
 /**
  * @test
  */
 public function withPrivateKey()
 {
     $connection = new Connection('TestUsername', '1.2.3.4', PrivateKey::get(FIXTURE_ROOT . 'foo.pem'));
     $this->assertEquals('ssh -i ' . FIXTURE_ROOT . 'foo.pem -o ConnectTimeout=5 -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null TestUsername@1.2.3.4', $connection->__toString());
 }