원격 호스트에 명령을 실행하기 위해서는 우선 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 라이브러리 문서를 참고하시면 됩니다.