使用PHP與SSH端連線

php有個ssh2的Function可以利用它來跟ssh端作連線,但是必須另外編譯 libssh 和 ssh2 這二個套件 ,本篇介紹安裝以及使用php連接ssh

準備:
libssh2 ssh2 libssh2_path 下載所需要的檔案
註: libssh2_path 編議有錯誤時會用到


安裝:
# 安裝 libssh2

1. 解壓縮後並進入該目錄
2. ./configure –prefix=/usr  && make all install
註: –prefix=/usr 將libssh2安裝在 /usr下

# 安裝 ssh2
1. 解壓縮後並進入該目錄

2. ./configure –with-ssh2 –with-php-config=/usr/local/php/bin/php-config
註:
–with-php-config=/usr/local/php/bin/php-config php-config 的位置

3. make
註:
如果在make 時有發生錯誤如該libssh2_path網站同樣的錯誤訊息的話,
可以下載該網站提供的path使用, 將下載下來的檔案copy到該目錄下,
並執行 patch < php-libssh2.diff 這指令 , 重新make 一次就可以make成功

4. 將編譯好的ssh2所產生的ssh2.so 檔案 copy 到你指定的 extensions 目錄下
cp modules/ssh2.so /usr/local/php/lib/php/extensions/
註: 如果尚未指定 php 的 extensions 位置 則必須先在php.ini 裡設定
/usr/local/php/lib/php/extensions/ 該目錄為我指定的php extensions 目錄
如果對 php 的 extensions 有問題的話 可以西先參考一下這篇
PHP如何手動編譯自己所需的extensions檔案

利用php連接ssh的簡單範例

<?
$_ip = "";
$_port = "";
$_user = "";
$_passord = "";

echo "Connexion SSH <br/>";
if (!($connection=@ssh2_connect($_ip, $_port))) {
echo "Connect SSH [FAILED]<br/>";
exit(1);
}
echo "Connect SSH [OK]<br/>";

if (!@ssh2_auth_password($connection,$_user,$_passord)) {
echo "Login SSH [FAILED]<br/>";
exit(1);
}
echo "Login SSH [OK]<br/>";

$stdout_stream = ssh2_exec($connection, "ls");
sleep(1);

while($line=fgets($stdout_stream)){
echo $line.’<br/>’;
}

fclose($stdout_stream);
?>

Related Posts with Thumbnails

相關文章