ssh2 를 이용해 서버에 접속하기

리눅스/PHP|2015. 1. 16. 10:38
반응형
1. libssh2 설치
배포 사이트 : http://www.libssh2.org

root@sysdocu:~# cd /usr/local/src
root@sysdocu:~# tar xvzf libssh2-1.8.0.tar.gz
root@sysdocu:~# cd libssh2-1.8.0
root@sysdocu:~# ./configure
root@sysdocu:~# make
root@sysdocu:~# make install


2. ssh2 확장 모듈 설치
배포 사이트 : http://pecl.php.net
위 사이트에서 'Download Statistics' 링크를 따라가면 'Package Statistics' 에 ssh2 라는 것이 보입니다.

* 최신버전이 나왔습니다.
php 5.x 에서는 0.13, php 7 에서는 1.1.2 를 설치하세요. (2018.11.14 기준)

root@sysdocu:~# cd /usr/local/src
root@sysdocu:~# tar xvzf ssh2-1.1.2.tgz
root@sysdocu:~# cd ssh2-1.1.2
root@sysdocu:~# /usr/local/php/bin/phpize
root@sysdocu:~# ./configure --with-php-config=/usr/local/php/bin/php-config
root@sysdocu:~# make
root@sysdocu:~# make install


* 다른 설치 방법
root@sysdocu:~# cd /usr/local/src
root@sysdocu:~# git clone https://git.php.net/repository/pecl/networking/ssh2.git
root@sysdocu:~# cd ssh2
root@sysdocu:~# /usr/local/php/bin/phpize
root@sysdocu:~# ./configure --with-php-config=/usr/local/php/bin/php-config
root@sysdocu:~# make
root@sysdocu:~# make install


모두 정상적으로 명령이 실행되면 ssh2.so 파일이 /usr/local/php/lib/php/extensions/no-debug-zts-20170718/ 디렉토리에 생성됩니다.
php.ini 에 아래와 같이 입력해줍니다.

root@sysdocu:~# vi /usr/local/apache/conf/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20170718/"
extension = "ssh2.so"

혹시라도 extension_dir 이 다른 경로로 지정되어 있을경우 ssh2.so 파일을 그 디렉토리로 옮겨줍니다.


3. 확인
아파치를 재시작 후 모듈이 정상적으로 올라왔는지 확인합니다.
root@sysdocu:~# /usr/local/apache/bin/apachectl restart
root@sysdocu:~# /usr/local/php/bin/php -m |grep ssh2


4. 활용
이제 ssh2_connect 라는 함수 사용이 가능합니다.
php 파일을 만들고 웹상에서 확인해볼 수 있습니다.

test.php

<?

if(!function_exists("ssh2_connect")) die("서버 연결 실패");


if (!($con = ssh2_connect("system.neulwon.com", 22))) {

    echo "서버 접속 불가";

}


else {

    if (!($login = ssh2_auth_password($con, "root", "1q2w3e4r"))) {

        echo "서버 로그인 불가";

    }

    else {

        if (!($cmd = ssh2_exec($con, "ls -al"))) {

            echo "명령어 실행 불가";

        }

        else {

            echo "명령 실행 완료";

        }

    }

}

?> 


반응형

'리눅스 > PHP' 카테고리의 다른 글

php로 xinetd 데몬 만들기  (0) 2015.01.16
socket 접속 테스트 소스  (0) 2015.01.16
ChartDirector for PHP 오류  (0) 2015.01.16
PHP에서 SNMP 사용  (0) 2015.01.16
pdo_mysql 확장 모듈 설치  (0) 2015.01.16

댓글()