In perl php commands includen --> geht das?

Bash, Shell, PHP, Python, Perl, CGI
blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01

In perl php commands includen --> geht das?

Post by blnsnoopy26 » 2005-08-17 05:39

Moin,

Nachdem folgendes bei mir 1A funktioniert habe ich da noch eine frage. Daher ich ja hauptsächlich alles in php gekodet habe, wollte ich mal fragem weil ich ja commands direk übergebe und sicher perl und php nicht kompatible istm wie man sowas in php umsezen kann:

Code: Select all

#!/usr/bin/perl 

use Net::SSH qw(sshopen2); 
use strict; 

my $user = "scriptuser"; 
my $host = "domain.tld"; 
my $cmd = "/pfad/zum/remotescript"; 

sshopen2("$user@$host", *READER, *WRITER, "$cmd") || die "ssh: $!"; 

while (<READER>) 
{ chomp(); 
print "$_n"; 
} 

close(READER); 
close(WRITER);
Der holt sich bei mir alles aus der DB die ganzen start und stop pfade, aber ich glaube nicht, das man im perl so ohne weiteres php includen kann.

Kennt jemand sowas was in php genauso aufgebaut ist mit der public key authenfizierung?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11604
Joined: 2003-02-27 01:00
Location: Hamburg

Re: In perl php commands includen --> geht das?

Post by Joe User » 2005-08-17 09:32

PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01

Re: In perl php commands includen --> geht das?

Post by blnsnoopy26 » 2005-08-17 10:20

Hi, genau, das habe ich mir schon angekuckt gehabt und installiert und da gibt es auch das public key verfahren nur funuzt es nicht so wie es sollte.

Hier mal ein Beispielscript das ich versucht habe zum laufen zu bekommen, aber nicht geschafft, ahbe, weil die autoresierung nicht klappt, weil da muss ich auch wohl den pfad zum key pub und normalen key angeben, nur ob es richtig ist ... k.a

Hier mal das script:

Code: Select all

<?php

function my_ssh_disconnect($reason, $message, $language) {
  printf("Server disconnected with reason code [%d] and message: %sn",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
   'crypt' => 'aes256-cbc',
   'comp' => 'none',
   'mac' => 'hmac-sha1'),
  'server_to_client' => array(
   'crypt' => 'aes256-cbc',
   'comp' => 'none',
   'mac' => 'hmac-sha1'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');
$ssh_host = "meineip";
$connection = ssh2_connect($ssh_host, 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
echo "Connected with $ssh_host<br>n";

$fingerprint = ssh2_fingerprint($connection,
               SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);
echo "This host's Fingerprint is: $fingerprintn<br>";

$user_name = "web1";
if (ssh2_auth_pubkey_file($connection, $user_name,'/home/htdocs/web1/.ssh/id_rsa.pub',
                         '/srv/www/htdocs/web3/.ssh/id_rsa', 'password keines')) {
  echo "Public Key Authentication Successful as user: $user_name<br>n";
} else {
  die('Public Key Authentication Failed');
}

$ssh_command = "/usr/bin/php -v";
echo "Executing Command: $ssh_command<br>n";
echo "<pre>";
$stream = ssh2_exec($connection, $ssh_command);
stream_set_blocking( $stream, true );

while ( $inhalt = fread( $stream, 4096 )) {
  echo "$inhalt";
}
echo "</pre>";
?>

/home/htdocs/web1/.ssh/id_rsa.pub = Remote Server
/srv/www/htdocs/web3/.ssh/id_rsa = Local Server
Password keines, weil in der passphrase keines angegeben.
Wenn ich die pfade angebe, also vom local server die id_rsa angebe und vom Remote die id_rsa.pub den absoluten pfad bekomme ich immer ein authenfication failed in zeile 34. Den Fingerprint gibt er mir wieder also klappt soweit auch der connect, nur das script kann sich nicht authen.

libssh2 und der kram ist alles installiert und lauffähig.
Kann mir da einer genau sagen in welcher reinfolge ich den pub und key eingeben muss, oder wie ich es eingeben muss, weil schlägt immer fehl leider :(

User avatar
Joe User
Project Manager
Project Manager
Posts: 11604
Joined: 2003-02-27 01:00
Location: Hamburg

Re: In perl php commands includen --> geht das?

Post by Joe User » 2005-08-17 11:09

Schuss ins Blaue, da ich das Script nicht kenne:

Code: Select all

//...
if (ssh2_auth_pubkey_file($connection, $user_name, '~/.ssh/id_rsa.pub', '~/.ssh/id_rsa', '')) {
//...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01

Re: In perl php commands includen --> geht das?

Post by blnsnoopy26 » 2005-08-17 11:31

Hi,

Werd ich heute abend mal versuchen, weil von arbeit komme ich hier nicht raus wegen dem Proxyserver, daher kein connect über putty oder ftp möglich.

Aber wenn noch jemand ideen hat, dann bitte hier posten.

blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01

Re: In perl php commands includen --> geht das?

Post by blnsnoopy26 » 2005-08-17 17:40

Hi,

@JoeUser

Hat nix gebracht.
Es ist kein Authen möglich :(

noch eine Idee?