# SSH Notes ## SSH Tunneling ### Local Forwarding #### Examples NOTE: these use autossh to prevent the tunnel from dying Plex ```shell autossh -f -nNT -p3141 -N -L 8080:192.168.0.209:32400 chawley@aristotle.planethawleywood.com ``` ESXi ```shell autossh -f -nNT -p3141 -N -L 8090:192.168.0.208:443 chawley@aristotle.planethawleywood.com ``` Both ESXi and AWX ```shell autossh -f -nNT -p3141 -N -L 8090:192.168.0.208:443 -L 8091:192.168.0.25:80 chawley@aristotle.planethawleywood.com ``` Both Plex and Derry OD ```shell autossh -f -nNT -p3141 -N -L 8080:192.168.0.209:32400 -L 8070:192.168.0.209:80 chawley@aristotle.planethawleywood.com ``` ---
Protocol SSH
From my office workstation
To RRD Jumpbox (54.84.9.50)
Via chawley2@ladmin2
Notes I have the jumpbox host configured in.ssh/config on both machines
ssh -N -L 8090:54.184.92.50:22 chawley2@ladmin2.precisiondm.com
Protocol web
From my office workstation
To Plex (derry)
Via chawley@aristotle
ssh -p3141 -N -L 8080:192.168.0.209:32400 chawley@aristotle.planethawleywood.com
### Remote Forwarding NOTE: By default, OpenSSH only allows connecting to remote forwarded ports from the server host. However, the GatewayPorts option in the server configuration file sshd_config can be used to control this. The following alternatives are possible: ```shell GatewayPorts no ``` This prevents connecting to forwarded ports from outside the server computer. ```shell GatewayPorts yes ``` This allows anyone to connect to the forwarded ports. If the server is on the public Internet, anyone on the Internet can connect to the port. #### Examples
Protocol web
From derry
To overlook
Notes This allows you to access apache web pages on derry by visiting http://overlook.planethawleywood.com:8888 as long as GatewayPorts yes is present in /etc/ssh/sshd_config (as explained above) and port 8888 is open on Overlook
ssh -R 8888:localhost:80 root@overlook
### Reference * [How To Use SSH Tunneling](https://www.howtogeek.com/168145/how-to-use-ssh-tunneling/) * [SSH Port Forwarding Example](https://www.ssh.com/ssh/tunneling/example) ## Kill Unresponsive SSH ### Summary Let’s say you’re happily typing in your remote shell when all of a sudden, the crappy Wi-Fi network you’re using goes down. You end up with a perfectly unusable frozen shell, ugh! To do that, assuming you lost connectivity, press in that order: ```shell [Enter] ~ . ``` That is, <return key> then tilde then period This will send an escape sequence to your local SSH client and terminate the connection.—So this will always work even without a network connection. Here’s the list of escape sequences: ### Supported escape sequences: `~.` - terminate connection (and any multiplexed sessions) \ `~B` - send a BREAK to the remote system \ `~C` - open a command line \ `~R` - Request rekey (SSH protocol 2 only) \ `~^Z `- suspend ssh \ ~# - list forwarded connections \ ~& - background ssh (when waiting for connections to terminate) \ ~? - this message \ ~~ - send the escape character by typing it twice \ \ (Note that escapes are only recognized immediately after newline.) ## SSH Keygen ### Generate an SSH Key with a comment ```shell ssh-keygen -C "comment" -f ```