/** * Creates a ssh session for a given server. * * @param Server $server * * @return Session */ public function createFromServer(Server $server) { $config = new Configuration($server->getHost(), $server->getPort()); switch (true) { case $server->getUsername() && $server->getPassword(): $auth = new Password($server->getUsername(), $server->getPassword()); break; case $server->getPrivateKey(): $auth = new PublicKeyFile($server->getUsername(), $server->getPublicKey(), $server->getPrivateKey(), $server->getKeyPhrase()); break; default: throw new \DomainException(sprintf('No authentication credentials given for server: %s', $server->getName())); break; } $session = new Session($config, $auth); return $session; }