This works from the command line
ssh me@admin@remote.host@cyberark.internal.com
******************************************************************
+*****
* Access to this computer system is limited to authorised users on
+ly. *
* Unauthorised users may be subject to prosecution under the Crime
+s *
* Act or State legislation
+ *
*
+ *
* Please note, ALL CUSTOMER DETAILS are confidential and must
+ *
* not be disclosed.
+ *
******************************************************************
+*****
me@admin@remote.host@cyberark.internal.com's password:
This session is being recorded
IF YOU ARE NOT AN AUTHORIZED USER, PLEASE EXIT IMMEDIATELY
This system processes sensitive personal data. The misuse of such data
+ may
generate considerable harm to the data subjects. Be reminded of the
confidentiality obligations you have when accessing this kind of data
+and
the disciplinary consequences of improper handling.
Last login: Thu Jun 23 03:35:31 2022 from 10.10.10.10
internal.node-admin@ :~>
It also works from putty if you put the me@..... in the hostname field
I have put a primitive hack to get around the issue.
if ( ( $target =~ tr/\@// ) < 2 ) {
($user, $passwd, $ipv6, $host, $port) =
$target =~ m{^
\s* # space
(?:
([^:]+) # username
(?::(.*))? # : password
\@ # @
)?
(?: # host
( # IPv6...
\[$IPv6_re(?:\%[^\[\]]*)\] # [IPv6]
| # or
$IPv6_re # IPv6
)
| # or
([^\[\]\@:]+) # hostname / ipv4
)
(?::([^\@:]+))? # port
\s* # space
$}ix
or croak "bad host/target '$target' specification";
} else {
$host = $target;
}
My test script now returns
# io3 fast, cin: 0, cout: 1, cerr: 0
# stdout, bytes read: 26 at offset 0
#> 4d 61 73 74 65 72 20 72 75 6e 6e 69 6e 67 20 28 70 69 64 3d 34 30 3
+4 29 0d 0a | Master running (pid=404)..
# io3 fast, cin: 0, cout: 1, cerr: 0
# stdout, bytes read: 0 at offset 26
# leaving _io3()
# _waitpid(407) => pid: 407, rc: 0, err:
main::(./ark-config.pl:142): say "Logged into Node";
DB<1>
But my capture is not working
my @out = $ssh->capture( { stdin_discard => 1, stderr_to_stdout => 1 }, $cmd );
|