Merge pull request #552 from bantu/ssh2-agent-login-test

SSH2 Agent Login Test

* bantu/ssh2-agent-login-test:
  Setup SSH key and agent for travis user.
  Add a functional test case for SSH2 login using Agent.
This commit is contained in:
Andreas Fischer 2014-12-12 12:48:21 +01:00
commit 6d42873b87
3 changed files with 46 additions and 0 deletions

View File

@ -20,6 +20,7 @@ env:
before_install: true before_install: true
install: install:
- eval `ssh-agent -s`
- travis/setup-secure-shell.sh - travis/setup-secure-shell.sh
- sh -c "if [ '$TRAVIS_PHP_VERSION' != 'hhvm' ]; then travis/install-php-extensions.sh; fi" - sh -c "if [ '$TRAVIS_PHP_VERSION' != 'hhvm' ]; then travis/install-php-extensions.sh; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.2' ]; then travis/setup-composer.sh; fi" - sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.2' ]; then travis/setup-composer.sh; fi"

View File

@ -0,0 +1,31 @@
<?php
/**
* @author Andreas Fischer <bantu@phpbb.com>
* @copyright 2014 Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License
*/
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()
{
$ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
$agent = new System_SSH_Agent;
$this->assertTrue(
$ssh->login($this->getEnv('SSH_USERNAME'), $agent),
'SSH2 login using Agent failed.'
);
}
}

View File

@ -13,5 +13,19 @@ set -x
USERNAME='phpseclib' USERNAME='phpseclib'
PASSWORD='EePoov8po1aethu2kied1ne0' PASSWORD='EePoov8po1aethu2kied1ne0'
# Create phpseclib user and home directory
sudo useradd --create-home --base-dir /home "$USERNAME" sudo useradd --create-home --base-dir /home "$USERNAME"
# Set phpseclib user password
echo "$USERNAME:$PASSWORD" | sudo chpasswd echo "$USERNAME:$PASSWORD" | sudo chpasswd
# Create a 1024 bit RSA SSH key pair without passphrase for the travis user
ssh-keygen -t rsa -b 1024 -f "$HOME/.ssh/id_rsa" -q -N ""
# Add the generated private key to SSH agent of travis user
ssh-add "$HOME/.ssh/id_rsa"
# Allow the private key of the travis user to log in as phpseclib user
sudo mkdir -p "/home/$USERNAME/.ssh/"
sudo cp "$HOME/.ssh/id_rsa.pub" "/home/$USERNAME/.ssh/authorized_keys"
sudo chown "$USERNAME:$USERNAME" "/home/$USERNAME/.ssh/" -R