{"id":167,"date":"2022-03-29T19:29:06","date_gmt":"2022-03-29T19:29:06","guid":{"rendered":"https:\/\/bigdata.lol\/?p=167"},"modified":"2022-07-26T07:11:00","modified_gmt":"2022-07-26T07:11:00","slug":"wsl-admining-linux-servers-from-windows-if-youre-not-using-wsl-youre-missing-out","status":"publish","type":"post","link":"https:\/\/bigdata.lol\/?p=167","title":{"rendered":"administering a lot of Linux systems from Windows? consider using WSL and a terminal multiplexer."},"content":{"rendered":"<p>When I was first getting my feet wet operating and developing on Linux systems, I used the popular terminal client PuTTY to connect to Linux systems. For a lot of folks with a Windows PC as their daily driver, PuTTY is the go-to tool for opening SSH sessions to Linux servers. PuTTY was comfortable for me for a while, until I found myself in situations where I needed to work with multiple servers via SSH at the same time. Juggling multiple PuTTY instances is kind of a nightmare.<\/p>\n<p>I experimented with a few different solutions to the workflow challenge of simultaneously managing multiple SSH connections. Of these workflows, the one I personally found to be the most productive can be described as: establish and manage remote SSH connections from within a terminal multiplexer, running on a Linux client.<\/p>\n<p>For me, this technique first looked something like this: I would use PuTTY to open a SSH connection from my Windows laptop to a &#8220;jump box&#8221; client. The jump box was a minimally spec&#8217;d virtual machine running CentOS Enterprise Linux. On my jump box, I&#8217;d installed and configured tmux, a terminal multiplexer, plus all of the other Linux-only tools I used as part of my dev\/admin workflow. After I took the time to learn to operate and configure tmux, I found this to be hands down the most productive way to manage multiple interactive SSH terminals.<\/p>\n<p>This piece of my Linux dev workflow remained the same for a while, until not long after Microsoft&#8217;s release of the Windows Subsystem for Linux (WSL). WSL enables Windows users to run Linux applications locally, &#8220;on&#8221; Windows. This idea was especially attractive to me, since it seemed like WSL could potentially eliminate the need for my Linux jump box in my workflow. And when I found time to install and configure WSL on my laptop, I found that this was in fact actually possible\u2014with WSL running, I could now use tmux right on my Windows machine.<\/p>\n<p>Everything worked more or less the way I expected it to work right out of the gate, with a couple minor exceptions. At some point I&#8217;ll demo some of the fine-tuning I&#8217;ve had to do for the Windows + WSL + tmux stack in a follow-up\/Part 2 post. I&#8217;ll also link the git repo that contains the bulk of my bash profile, my WSL config, and some scripts I wrote to help with some of the one-time setup of this stack on my Windows devices.<\/p>\n<p>Stay tuned.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I was first getting my feet wet operating and developing on Linux systems, I used the popular terminal client PuTTY to connect to Linux systems. For a lot of folks with a Windows PC as their daily driver, PuTTY is the go-to tool for opening SSH sessions to Linux servers. PuTTY was comfortable for me for a while, until I found myself in situations where I needed to work &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-167","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/bigdata.lol\/index.php?rest_route=\/wp\/v2\/posts\/167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bigdata.lol\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bigdata.lol\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bigdata.lol\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bigdata.lol\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=167"}],"version-history":[{"count":29,"href":"https:\/\/bigdata.lol\/index.php?rest_route=\/wp\/v2\/posts\/167\/revisions"}],"predecessor-version":[{"id":262,"href":"https:\/\/bigdata.lol\/index.php?rest_route=\/wp\/v2\/posts\/167\/revisions\/262"}],"wp:attachment":[{"href":"https:\/\/bigdata.lol\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bigdata.lol\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bigdata.lol\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}