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/ sshbunny
atau
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 ();