원격 호스트에 명령을 실행하기 위해서는 우선 SSH 키를 통한 연결이 필요합니다. SSH 키를 연결하는 방법은 오픈튜토리얼스의 강좌 참고하시면 됩니다.

우선 SSH 라이브러리를 좀 더 편리하기 쓰기 위해 랩퍼를 하나 설치합니다. 이 라이브러리를 사용하기 위해서는 PHP에 ssh2 익스텐션이 설치되어 있어야 합니다.

1
composer require herzult/php-ssh

다음은 원격 호스트에 ls -al 명령을 실행하는 짧은 예제입니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?php

namespace Example;

require 'vendor/autoload.php';

$configuration = new \Ssh\Configuration('remote.hostname');
$authentication = new \Ssh\Authentication\PublicKeyFile(
    'sangheon',
    '/home/sangheon/.ssh/id_rsa.pub',
    '/home/sangheon/.ssh/id_rsa'
);

$session = new \Ssh\Session($configuration, $authentication);
$exec = $session->getExec();

echo $exec->run('ls -al');

위 예제 외에 패스워드를 통한 인증도 가능합니다. 자세한 것은 herzult/php-ssh 라이브러리 문서를 참고하시면 됩니다.