PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH Tunnel mit Perl aufbauen



craano
02-09-2010, 20:02
Hallo, ich stehe gerade auf dem Schlauch, denn ich habe nur gelegentlich mit Perl etwas zu tun.
Ich versuche gerade einen SSH Tunnel nur mit Perl Tools aufzubauen. Ich möchte deshalb nicht Net::SSH verwenden, da das nur ein Wrapper um SSH ist. Deshalb möchte ich das ganze mit Net::SSH::Perl realisieren.


#!/usr/bin/perl
use Math::BigInt;
use Net::SSH::Perl;

my $host = "192.168.0.125";
my %params = (debug => [1], options => ["LocalForward 8000 localhost:80"]);
my $ssh = Net::SSH::Perl->new($host,%params);
$ssh->login("craano","xxx",1);
print "Tunnel established \n";
sleep(120);

Wenn ich das Skript starte dann bekomme ich folgende Ausgabe:


$ perl ssh.pl
kubuntu-laptop: Reading configuration data /home/craano/.ssh/config
kubuntu-laptop: Reading configuration data /etc/ssh_config
kubuntu-laptop: Connecting to 192.168.0.125, port 22.
kubuntu-laptop: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-3ubuntu1
kubuntu-laptop: Net::SSH::Perl Version 1.34, protocol version 2.0.
.ubuntu-laptop: No compat match: OpenSSH_5.1p1 Debian-3ubuntu1
kubuntu-laptop: Connection established.
kubuntu-laptop: Sent key-exchange init (KEXINIT), wait response.
kubuntu-laptop: Algorithms, c->s: 3des-cbc hmac-sha1 none
kubuntu-laptop: Algorithms, s->c: 3des-cbc hmac-sha1 none
kubuntu-laptop: Entering Diffie-Hellman Group 1 key exchange.
kubuntu-laptop: Sent DH public key, waiting for reply.
kubuntu-laptop: Received host key, type 'ssh-dss'.
kubuntu-laptop: Host '192.168.0.125' is known and matches the host key.
kubuntu-laptop: Computing shared secret key.
kubuntu-laptop: Verifying server signature.
kubuntu-laptop: Waiting for NEWKEYS message.
kubuntu-laptop: Send NEWKEYS.
kubuntu-laptop: Enabling encryption/MAC/compression.
kubuntu-laptop: Sending request for user-authentication service.
kubuntu-laptop: Service accepted: ssh-userauth.
kubuntu-laptop: Trying empty user-authentication request.
kubuntu-laptop: Authentication methods that can continue: publickey,password.
kubuntu-laptop: Next method to try is publickey.
kubuntu-laptop: Next method to try is password.
kubuntu-laptop: Trying password authentication.
kubuntu-laptop: Login completed, opening dummy shell channel.
kubuntu-laptop: channel 0: new [client-session]
kubuntu-laptop: Requesting channel_open for channel 0.
kubuntu-laptop: channel 0: open confirm rwindow 0 rmax 32768
Tunnel established


Wenn ich nun im Browser die Seite http://localhost:8000 aufrufe, dann bekomme ich einen Fehler im Verbindungsaufbau, der Server hat die Verbindung abgelehnt. Am Server liegt es nicht, denn wenn ich den Tunnel mit


ssh -L 8000:localhost:80 craano@192.168.0.125 -N

aufbaue, dann klappt es einwandfrei.

Was muss ich am obigen Skript denn noch ändern, damit es funktioniert?
Bitte jetzt keine lange Diskussion über die Sicherheit. Das Passwort steht nur im Klartext im Skript solange ich noch teste.
Grüße.
craano