--- /dev/null
+gw:2345:respawn:/root/public.internet.com--hostintranet-ssht
--- /dev/null
+#! /usr/bin/perl -Tw --
+
+use strict;
+#use warnings; #-w
+
+use constant LOGFNAME=>"/root/hostintranet-ssht-out.log";
+
+open LOG,">>".LOGFNAME
+ or die "append: ".LOGFNAME;
+my $stdout=select();
+$|=1;
+select LOG;
+$|=1;
+select $stdout;
+
+my($nulldev ,$nullinode )=stat "/dev/null";
+my($stdindev,$stdininode)=stat STDIN;
+my $isnull=($nulldev==$stdindev && $nullinode==$stdininode);
+
+sub out
+{
+my($msg)=@_;
+
+ $msg="$$: $msg\n";
+ print LOG $msg;
+ print $msg;
+}
+
+sub outdie
+{
+my($msg)=@_;
+
+ out $msg;
+ die $msg;
+}
+
+out "CONNECT";
+for (;;) {
+ out scalar localtime(time());
+
+ my $tmo=60;
+ while ($tmo-->0) {
+ sleep 1;
+ next if $isnull;
+
+ my $rfds="";
+ vec($rfds,fileno(STDIN),1)=1;
+ my $efds=$rfds;
+ next if 1!=select $rfds,undef,$efds,0;
+ my $got;
+ outdie "expectfds" if vec($efds,fileno(STDIN),1);
+ my $sysread;
+ outdie "sysread=$sysread" if 1!=($sysread=sysread STDIN,$got,1);
+ }
+ }
--- /dev/null
+#! /bin/sh
+/root/hostintranet-ssht.pl </dev/null | \
+ /usr/bin/ssh -1 -i /root/public.internet.com--hostintranet-ssht--identity -R 8001:localhost:22 hostintranet-ssht@1.2.3.4-IP-of-public.internet.com \
+ >> /root/hostintranet-ssht-in.log 2>&1
--- /dev/null
+private key from ~/.ssh/id_dsa
--- /dev/null
+hostintranet-ssht:x:1006:1006:hostintranet ssht:/home/hostintranet-ssht:/home/hostintranet-ssht/hostintranet-ssht.pl
--- /dev/null
+public key from ~/.ssh/id_dsa.pub
--- /dev/null
+#! /usr/bin/perl -Tw --
+
+use strict;
+#use warnings; #-w
+
+use constant LOGFNAME=>"/home/hostintranet-ssht/hostintranet-ssht.log";
+
+open LOG,">>".LOGFNAME
+ or die "append: ".LOGFNAME;
+my $stdout=select();
+$|=1;
+select LOG;
+$|=1;
+select $stdout;
+
+my($nulldev ,$nullinode )=stat "/dev/null";
+my($stdindev,$stdininode)=stat STDIN;
+my $isnull=($nulldev==$stdindev && $nullinode==$stdininode);
+
+sub out
+{
+my($msg)=@_;
+
+ $msg="$$: $msg\n";
+ print LOG $msg;
+ print $msg;
+}
+
+sub outdie
+{
+my($msg)=@_;
+
+ out $msg;
+ die $msg;
+}
+
+out "CONNECT";
+for (;;) {
+ out scalar localtime(time());
+
+ my $tmo=60;
+ while ($tmo-->0) {
+ sleep 1;
+ next if $isnull;
+
+ my $rfds="";
+ vec($rfds,fileno(STDIN),1)=1;
+ my $efds=$rfds;
+ next if 1!=select $rfds,undef,$efds,0;
+ my $got;
+ outdie "expectfds" if vec($efds,fileno(STDIN),1);
+ my $sysread;
+ outdie "sysread=$sysread" if 1!=($sysread=sysread STDIN,$got,1);
+ }
+ }