SSH singkatan dari Secure Shell, secara sederhananya manfaat dari SSH adalah sebuah secara untuk mengirimkan perintah-perintah ke pada sebuah komputer/server secara remote (jarak jauh).
Sedangkan PHP secara singkat adalah sebuah server side scripting yang populer untuk membuat web dinamis.
Secara default PHP tidak menyertakan library untuk melakukak SSH. Pada posting ini akan coba dijelasakan untuk melakukan Connection SSH melalui PHP.
Spesifikasi komputer pada posting ini adalah :
- Operating System Linux Ubuntu Lucid Lynx
- PHP version 5.3.2
Agar PHP dapat melakukan SSH membutuhkan sebuah library. Library tersebut adalah PHP Secure Communications Library atau biasa di singkat phpseclib
phpseclib adalah sebuah library PHP untuk melakukan berbagai komunikasi melalui SSH, SFTP, Aritmatika Presisi dan berbagai macam Kriptografi. Berikut ini adalah cara menggunakan libary phpseclib untuk SSH.
- Download library phpseclib di http://phpseclib.sourceforge.net/
- Ekstrak phpseclib0.2.1a.zip di www root/public html web server Anda.
- Kemudian buat sebuah file pada folder hasil ekstrak phpseclib0.2.1a.zip lalu sebagi contoh ketikan perintah seperti dibawah ini
<?php include('Net/SSH2.php'); $ssh = new Net_SSH2('127.0.0.1'); if (!$ssh->login('dendie', 'xxx')) { exit('Login Failed'); } echo $ssh->exec('ls'); ?>
Pada contoh diatas malakukan connection ssh ke komputer 127.0.0.1 dengan username name dendie dan password xxx Dan $ssh->exec('pwd') adalah perintah command line linux untuk mendapatkan alamat path aktif berada. Hasil perintah di atas adalah sebagai berikut
/home/dendie
Sebagai Contoh dalam pengembangan selanjutnya Connection SSH melalui PHP dapat dikembangkan untuk melakukan monitoring kapasitas harddisk, CPU Usage, Memori Usage dsb, secara bersamaan dan secara remote kebanyak komputer/server, kemudian hasilnya ditampilkan pada web-page, seperti contoh dibawah ini:
Untuk mempermudah melakukan monitoring serprti di atas dapat menggunakan class actServer, silakan download di klik download
Berikut ini adalah cara menggunakan-nya:
include('actServer.php') error_reporting(0); $act = new actServerClass(); $act->setServer('127.0.0.1','username','password'); echo $act->getCpuUsePer(). ' %'; //CPU Active processes dalam persen echo act->getMemUsePer(). ' %'; //Memori Active processes dalam persen echo $act->getMemUse(); //Memori Usage (megabyte) echo $act->getSpace(); //Harddisk Space echo $act->getDetail('mem'); //Detail Active processes Memori echo $act->getDetail('cpu'); //Detail Active processes CPU $act->setflush()
postingnya bagus, untuk linux ya boz?
ReplyDeletekalau windows apakah juga bisa?
thanks...
ReplyDeletewindows juga bisa.. yang penting di komputer target nya tersinstal ssh server nya...
untuk monitoring aktivitas server pada contoh masih diperuntukan linux base karena command-command pake nya punya-nya linux...
mas tinggal ubah saja perintah command line linux nya menjadi command line windows...
mas mau nanya...
ReplyDeletepas send command "ls -ltr" kok hasil tampilan penuh ke kanan yah (tanpa ada line feed)??
kira bagian mana yah yg diedit? atau ada trik khusus??
sebetulnya itu ada newline nya, bila di command line dan file teks tampilannya akan tersusun rapih, tetapi bila di webpage tidak akan terbentu barisnya karena di webpage untuk baris baru menggunakan simbol tag br. Agar hasil commandline terlihat rapih Anda harus mem-parsing output eksekusi SSH2 terlebih dahulu ke array PHP, seperti contoh ini.
ReplyDelete$data = $ssh->exec('ls -ltr');
$e = explode("\n",$data);
print_r($e);
Thanks, telah remind me dengan perintah Explode ^^
DeleteThis comment has been removed by the author.
DeleteWow... sudah 1,5 tahun :_
Deletekoneksi berhasil
ReplyDeleteaq jalanin command ini kok ndak bisa ya
echo $ssh->exec('c7xtermx -n SGSNSMR2');
error
This comment has been removed by the author.
ReplyDelete@didik itu perintah untuk melakukan apa ?
ReplyDeletePermisi mas numpang nanya, phpseclib bisa untuk login ke router cisco dan melakukan comand2nya tidak?
ReplyDeleteThanks
saya belum pernah coba itu mas.. pada dasar-nya apabila pada router terpasang ssh server sepertinya bisa melakukan comand2 tersebut.
ReplyDeletemas kalau login dari client windows ke server linux pake php dengan script dan librari diatas ya ??
ReplyDeletebisa
ReplyDeleteMas Dendi, mau tanya. Seteleh kita bisa ssh_connect via PHP tersebut, kemudian kita mau coba telnet ke perangkat lain itu gimana cara nya ya..??. Mohon di bantu, thanks.
ReplyDeletesaya belum pernah coba akses pake telnet mas..
ReplyDeletemas Dendie, kalau program di atas hanya untuk memonitoring saja, apakah dengan ssh dapat mengistall program pada komputer yang dituju?
ReplyDeleteterima kasih
bisa.. misalak seperti ini
Delete$ssh->exec('cd /home/app');
$ssh->exec('./configure');
$ssh->exec('./make');
$ssh->exec('./make install');
MAs mau nanya nih, saat sy udh nyoba script ini
ReplyDeletelogin('root', 'xxx')) {
exit('Login Failed');
}
echo $ssh->exec('ls -ltr');
?>
Koq langsung ngebaca ke folder "/root" ?
Nah supaya ngebaca ke folder diluar root ("/"), gmn caranya yah?
cara nya begini
Deleteecho $ssh->exec('ls -ltr /var/www')
atau begini
Deleteecho $ssh->exec('ls -ltr /');
MAs, script phpnya gmn ya. Supaya perintah $ssh->exec() nya lbh dari satu? Contoh perintahnya ada tiga :
ReplyDelete$ssh->exec('cd ..');
$ssh->exec('cd /opt');
$ssh->exec('ls -ltr');
Sy sdh pake metode IF, tp g bs.
Bisa, cara nya melakukan combine command dalam satu eksekusi, seperti contoh di bawah ini.
Delete$ssh->exec('cd /var/www; ls -al');
login('widhy', '123')) {
ReplyDeleteexit('Login Failed');
}
echo $ssh->exec('apt-get update');
?>
gan, kalo perintahnya buat update gmana ya? karena saya coba harus dengan root
login nya pake root : login('root', 'password')
Deletega bisa gan, malah login failed, tolongin saya gan
ReplyDeleteMungkin salah password root nya saja
Deletemas dendie kalo bikin GUInya buat ssh make php gmn caranya ya?
ReplyDeletebiar saya tinggal mengetikkan perintah/command shellnya itu lsg dari web browsernya.
1. Bikin form HTML -> http://www.w3schools.com/html/html_forms.asp yang action formnya mengarah ke salah file PHP
Delete2. pada file PHP tangkap data yang di kirim melalui form tersebut. -> http://www.tutorialspoint.com/php/php_get_post.htm
Sangat membantu artikel ini #terima kasih banyak bang
ReplyDeleteAlhamdulilah bermanfaat
Deletemas dendie kalau monitoringnya realtime tanpa harus di refresh browsernya bijimana yah ? :)
ReplyDeletemas Dendi,
ReplyDeletesaya ada error "NET_SSH2_MSG_CHANNEL_FAILURE"
itu kenapa ya?
Terima kasih mas dendi... Saya bisa akses data ERP via PHP.. mantap betul tutornya mas.. salam dr sby mas.
ReplyDeletemau tanya mas, kalau misalkan saya eksekusi file bash pakai exec yang memerlukan inputan nilai bagaimana ya?
ReplyDeleteContoh file tambah.bash akan ada rumus x+y, nanti kalau file bash dijalankan ada pertanyaan input nilai x dan input nilai y, nah penggunaan secara langsungnya gimana ya?