public key authentication for remote servers

This commit is contained in:
Savetheinternet 2011-07-30 20:45:51 +10:00
parent 7ff9cd6f2d
commit e3918f7110
2 changed files with 11 additions and 2 deletions

View File

@ -259,7 +259,6 @@
global $config; global $config;
if(preg_match('/^remote:\/\/(.+)\:(.+)$/', $path, $m)) { if(preg_match('/^remote:\/\/(.+)\:(.+)$/', $path, $m)) {
if(isset($config['remote'][$m[1]])) { if(isset($config['remote'][$m[1]])) {
require_once 'inc/remote.php'; require_once 'inc/remote.php';

View File

@ -14,6 +14,16 @@
$this->connection = ssh2_connect($this->host, isset($this->port) ? $this->port : 22, $methods); $this->connection = ssh2_connect($this->host, isset($this->port) ? $this->port : 22, $methods);
switch($this->auth['method']) { switch($this->auth['method']) {
case 'pubkey':
if(!isset($this->auth['public']))
error('Public key filename not specified.');
if(!isset($this->auth['private']))
error('Private key filename not specified.');
if(!ssh2_auth_pubkey_file($this->connection, $this->auth['username'], $this->auth['public'], $this->auth['private'], isset($this->auth['passphrase']) ? $this->auth['passphrase']: null))
error('Public key authentication failed.');
break;
case 'plain': case 'plain':
if(!ssh2_auth_password($this->connection, $this->auth['username'], $this->auth['password'])) if(!ssh2_auth_password($this->connection, $this->auth['username'], $this->auth['password']))
error('Plain-text authentication failed.'); error('Plain-text authentication failed.');
@ -44,4 +54,4 @@
} }
} }
}; };
?> ?>