SSH tunnels can provide secure connections through insecure or untrusted networks and may also be used to securely route through firewalls.
About This Guide
This guide began as a personal document to help me learn and remember how SSH tunnels work and has been several years incubating. If you find errors or think of additional examples that you believe would be helpful, I’d be delighted to know about them.
Terminology
Throughout this guide we use “SSH” to refer to the SSH protocol or the world of SSH things and use ssh
to refer to the ssh(1)
program itself. “We use ssh
and sshd
to make SSH connections.” The examples in this tutorial are based on OpenSSH 0.9.8 and later.
I talked about event loops at OpenWest.
Euclid created this simple and beautiful proof of infinite prime numbers. I am writing this down as I understand it to make it more solid in my own mind. Caveat: I am not a mathematician and don’t use rigorous terms below.
Let S be the set of all prime numbers. Multiply all members of S to come up with a number N. N is not prime (being composed of all primes in S). But N+1 may be prime; if so, N+1 can be added to S.
I overheard some 12 year olds talking. One of them asked, “Have you heard of Google Fiber?”
Another asked, “What’s that?”
“Google fiber is a new operating system by Google that is way faster and has more memory.”
Martin Fowler on the will to design:
In order to work, evolutionary design needs a force that drives it to converge. This force can only come from people—somebody on the team has to have the determination to ensure that the design quality stays high.
This will does not have to come from everyone (although it’s nice if it does), usually just one or two people on the team take on the responsibility of keeping the design whole. This is one of the tasks that usually falls under the term ‘architect’.
I gave a talk at OpenWest about Perl’s AnyEvent module and some of its primitive operations.
I gave a presentation at OpenWest about Perl dependency isolation using perlbrew
and plenv
+ carton
:
I re-learned some electrical terms today that may be useful later when working with GFCI circuits.
- Line (usually black, also known as “hot”): comes in from the electrical panel
- Load (usually black, sometimes red): is a continuation of line and goes out to downstream devices. Non-GFCI circuits will not have a load.
- Neutral (usually white): completes the AC circuit and carries excess current to ground
- Ground (bare): carries any inadvertent current away from the circuit in case of a fault
The catchphrase is “line in, load out”.
Given a multi-level deep hash reference:
my $conf = {
bucket => {
list => {
h => 'help me',
_sub => sub { say "something" }
}
},
file => {
upload => {
h => 'help me too',
_sub => sub { say "else" }
}
}
};
We want to remove all of the _sub
keys and put them in a separate hash reference with the same structure. This does that: