GNU/Linux >> Belajar Linux >  >> Linux

Jalankan perintah pada mesin jarak jauh melalui PHP

Jalankan perintah SSH melalui PHP di server A ke server B.

Berikut ini cara menjalankan perintah ssh dengan baris perintah di linux:http://www.youtube.com/watch?NR=1&feature=fvwp&v=YLqqdQZHzsU

Untuk menjalankan perintah di linux dengan PHP gunakan perintah exec().

Saya harap ini akan membuat Anda mulai melihat ke arah yang benar.

Lihat dua postingan ini untuk mengotomatiskan prompt kata sandi

  • https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password
  • https://serverfault.com/questions/187036/execute-ssh-command-without-password

Berikut adalah contoh cepat dengan tidak berfungsi kode untuk membuat Anda berpikir:

<?php

    $server = "serverB.example.org";
    //ip address will work too i.e. 192.168.254.254 just make sure this is your public ip address not private as is the example

    //specify your username
    $username = "root";

    //select port to use for SSH
    $port = "22";

    //command that will be run on server B
    $command = "uptime";

    //form full command with ssh and command, you will need to use links above for auto authentication help
    $cmd_string = "ssh -p ".$port." ".$username."@".$server." ".$command;

    //this will run the above command on server A (localhost of the php file)
    exec($cmd_string, $output);

    //return the output to the browser
    //This will output the uptime for server B on page on server A
    echo '<pre>';
    print_r($output);
    echo '</pre>';
?>

Alur yang disarankan adalah menjalankan perintah di server A ke SSH ke server B


Gunakan phpseclib untuk mengamankan SSH atau SCP ke server jarak jauh

Instal dengan composer require phpseclib/phpseclib

use phpseclib\Crypt\RSA;
use phpseclib\Net\SSH2;
use phpseclib\Net\SCP;

// Load your private key
$key = new RSA();
$key->loadKey('private key string');

// Connect to the server
$ssh = new SSH2('ip_address', 'port', 'timeout');
if (!$ssh->login('username', $key)) {
    throw new Exception("Unable to connect");
}

// Run a remote command
echo $ssh->exec('whoami');

// SCP put a string
$result = (new SCP($ssh))->put('remotePath', 'content to put');
// SCP put a file
$result = (new SCP($ssh))->put('remotePath', 'localPath', SCP::SOURCE_LOCAL_FILE);

// SCP get a file
$result = (new SCP($this->ssh))->get('remotePath', 'localPath');

// $result is true or false

Linux
  1. Bagaimana Cara Menyalin File Dari Server Jarak Jauh Ke Mesin Lokal?

  2. Jalankan Perintah Di Terminal Aktif Jarak Jauh?

  3. Memecahkan masalah akses jarak jauh ke SQL Server

  1. Jalankan skrip Python melalui crontab

  2. Putar suara *pada* mesin jarak jauh melalui ssh di Ubuntu/Linux

  3. Pencadangan Jarak Jauh Terenkripsi melalui Rsync?

  1. Paksa reboot server Linux jarak jauh

  2. Ssh – Jalankan Perintah Jarak Jauh, Lepas Sepenuhnya Dari Koneksi Ssh?

  3. Ssh – Mengakses Server Linux Dari Mesin Windows Dalam Mode Grafis Via Ssh?