Page 1 of 1

In perl php commands includen --> geht das?

Posted: 2005-08-17 05:39
by blnsnoopy26
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?

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

Posted: 2005-08-17 09:32
by Joe User

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

Posted: 2005-08-17 10:20
by blnsnoopy26
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 :(

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

Posted: 2005-08-17 11:09
by Joe User
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', '')) {
//...

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

Posted: 2005-08-17 11:31
by blnsnoopy26
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.

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

Posted: 2005-08-17 17:40
by blnsnoopy26
Hi,

@JoeUser

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

noch eine Idee?