Support user@host syntax for SSH connection

This commit is contained in:
Keith Winstein
2012-02-03 19:21:34 -05:00
parent 5f31fd3f7a
commit f4817998f3
+13 -3
View File
@@ -8,10 +8,20 @@ use IO::Pty;
$|=1; $|=1;
if ( scalar @ARGV != 3 ) { if ( scalar @ARGV != 3 ) {
die "Usage: $0 HOST MOSHCLIENT MOSHSERVER\n"; die "Usage: $0 [user@]host mosh-client-command mosh-server-command\n";
} }
my ( $host, $client, $server ) = @ARGV; my ( $userhost, $client, $server ) = @ARGV;
my ( $user, $host );
# Get username
if ( $userhost =~ m'(.*?@)(.*)' ) {
( $user, $host ) = ( $1, $2 );
} else {
$user = "";
$host = $userhost;
}
# Resolve hostname # Resolve hostname
my $packed_ip = gethostbyname $host; my $packed_ip = gethostbyname $host;
@@ -34,7 +44,7 @@ if ( $pid == 0 ) { # child
open STDERR, ">&", $pty_slave->fileno() or die; open STDERR, ">&", $pty_slave->fileno() or die;
close $pty_slave; close $pty_slave;
exec {'ssh'} ('ssh', '-t', $ip, $server, $ip); exec {'ssh'} ('ssh', '-t', $user . $ip, $server, $ip);
die "Cannot exec ssh: $!\n"; die "Cannot exec ssh: $!\n";
} else { # server } else { # server
my ( $port, $key ); my ( $port, $key );