ssh2 를 이용해 서버에 접속하기
리눅스/PHP2015. 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 |
댓글()