Pustaka PHP yang menyediakan pembungkus berorientasi objek untuk terhubung ke SSH dan menjalankan perintah shell dengan ekstensi php ssh2.
Cara terbaik untuk menambahkan perpustakaan ke proyek Anda adalah menggunakan komposer.
composer require faraweilyas/ sshbunnyatau
git clone https://github.com/faraweilyas/sshbunny.git konstruktor sshbunny mengambil empat parameter dan semuanya memiliki nilai default $method='local' , $authType=NULL , $host=NULL , $port=22 , $username=NULL
$method dapat diatur ke local atau remote , local akan menjalankan perintah di shell Anda sendiri tanpa koneksi internet sementara remote mengeksekusi perintah di server jarak jauh yang Anda sambungkan berdasarkan konfigurasi Anda.$authType dapat disetel ke KEY , PASSWORD atau KEY_PASSWORD , KEY dan KEY_PASSWORD menggunakan ssh2_auth_pubkey_file perbedaannya adalah ketika Anda menyetel $authType='KEY_PASSWORD' ssh2_auth_pubkey_file mengambil parameter kata sandi terakhir yang sekarang diperlukan dan PASSWORD menggunakan ssh2_auth_password.$port harus disetel ke port server Anda jika Anda terhubung ke server jarak jauh.$username harus disetel ke nama pengguna server Anda. jika Anda menyetel metode koneksi ke $method='remote' dan $authType = KEY || KEY_PASSWORD itu berarti Anda perlu mengatur file kunci publik & pribadi yang dapat Anda lakukan dengan setter yang dimiliki sshbunny $ sshbunny ->setKeys('public_key.pub', 'private_key') sebelum inisialisasi.
Ini hanya akan berjalan secara lokal karena metode koneksi disetel ke local
<?php
use sshbunny sshbunny ;
require_once ' vendor/autoload.php ' ;
// ->getData() will return output of command executed while ->getData(TRUE) will dispay the output
$ sshbunny = ( new sshbunny ( ' local ' ))
-> initialize ()
-> exec ( " echo 'Hello World' " )
-> getData ( TRUE ); Ini akan terhubung ke server jarak jauh karena metode koneksi diatur ke remote dan jenis otentikasi diatur ke KEY
<?php
use sshbunny sshbunny ;
require_once ' vendor/autoload.php ' ;
defined ( ' TEST_HOST ' ) ? NULL : define ( ' TEST_HOST ' , " 138.222.15.1 " );
defined ( ' PORT ' ) ? NULL : define ( ' PORT ' , " 22 " );
defined ( ' USERNAME ' ) ? NULL : define ( ' USERNAME ' , " ubuntu " );
defined ( ' PUBLIC_KEY ' ) ? NULL : define ( ' PUBLIC_KEY ' , ' id_ssl.pub ' );
defined ( ' PRIVATE_KEY ' ) ? NULL : define ( ' PRIVATE_KEY ' , ' id_ssl ' );
$ sshbunny = ( new sshbunny ( ' remote ' , ' KEY ' , HOST , PORT , USERNAME ))
-> setKeys ( PUBLIC_KEY , PRIVATE_KEY )
-> initialize ()
-> exec ( " echo 'Hello World' " )
-> getData ( TRUE ); Eksekusi perintah dapat mengambil banyak perintah atau Anda dapat menghubungkan metode exec dengan metode exec lainnya
$ sshbunny = ( new sshbunny ( ' remote ' , ' KEY ' , HOST , PORT , USERNAME ))
-> setKeys ( PUBLIC_KEY , PRIVATE_KEY )
-> initialize ()
// Multiple commands
-> exec ( " echo 'Hello World' " , " cd /var/www/html " )
// Method chaining
-> exec ( " ls -la " )
-> getData ( TRUE ); // Will return the result of executed command output
$ sshbunny
-> exec ( " ls -la " )
-> getData ();
// Will display the result of executed command output
$ sshbunny
-> exec ( " ls -la " )
-> getData ( TRUE ); // Will clear the first executed command output and return the next executed command output
$ sshbunny
-> exec ( " ls -la " )
-> clearData ()
-> exec ( " whoami " )
-> getData ( TRUE ); // Will run the commands provided and display the result then disconnect from the server
$ sshbunny
-> exec ( " ls -la " , " whoami " )
-> getData ( TRUE )
-> disconnect ();