1
0
mirror of https://github.com/danog/tgseclib.git synced 2024-11-30 04:39:02 +01:00
tgseclib/tests/Functional/Net/SSH2AgentTest.php

56 lines
1.4 KiB
PHP
Raw Normal View History

<?php
/**
* @author Andreas Fischer <bantu@phpbb.com>
* @copyright 2014 Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License
*/
2019-12-18 14:00:20 +01:00
use tgseclib\Net\SSH2;
use tgseclib\System\SSH\Agent;
2014-12-15 18:25:46 +01:00
class Functional_Net_SSH2AgentTest extends PhpseclibFunctionalTestCase
{
public static function setUpBeforeClass()
{
if (!isset($_SERVER['SSH_AUTH_SOCK'])) {
self::markTestSkipped(
'This test requires an SSH Agent (SSH_AUTH_SOCK env variable).'
);
}
parent::setUpBeforeClass();
}
public function testAgentLogin()
{
2014-12-12 19:20:33 +01:00
$ssh = new SSH2($this->getEnv('SSH_HOSTNAME'));
2014-12-15 23:33:25 +01:00
$agent = new Agent;
$this->assertTrue(
$ssh->login($this->getEnv('SSH_USERNAME'), $agent),
'SSH2 login using Agent failed.'
);
2014-12-30 03:44:31 +01:00
2017-11-27 09:30:14 +01:00
return ['ssh' => $ssh, 'ssh-agent' => $agent];
2014-12-30 03:44:31 +01:00
}
/**
* @depends testAgentLogin
*/
public function testAgentForward($args)
{
$ssh = $args['ssh'];
$agent = $args['ssh-agent'];
$hostname = $this->getEnv('SSH_HOSTNAME');
$username = $this->getEnv('SSH_USERNAME');
$this->assertEquals($username, trim($ssh->exec('whoami')));
$agent->startSSHForwarding($ssh);
$this->assertEquals($username, trim($ssh->exec("ssh " . $username . "@" . $hostname . ' \'whoami\'')));
2014-12-30 03:44:31 +01:00
return $args;
}
}