<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: TorqueWrench</title>
    <description>The latest articles on DEV Community by TorqueWrench (@torqu3wr3nch).</description>
    <link>https://dev.to/torqu3wr3nch</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F299553%2Fc2efe114-3541-40e5-8b5b-5cda72e7cdf0.jpg</url>
      <title>DEV Community: TorqueWrench</title>
      <link>https://dev.to/torqu3wr3nch</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/torqu3wr3nch"/>
    <language>en</language>
    <item>
      <title>tmux for Beginners: A Quick and Easy Introduction</title>
      <dc:creator>TorqueWrench</dc:creator>
      <pubDate>Mon, 10 Feb 2020 16:05:50 +0000</pubDate>
      <link>https://dev.to/torqu3wr3nch/tmux-for-beginners-a-quick-and-easy-introduction-3oa7</link>
      <guid>https://dev.to/torqu3wr3nch/tmux-for-beginners-a-quick-and-easy-introduction-3oa7</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
tmux: What It Is and Why You Should Use It

&lt;ul&gt;
&lt;li&gt;What is tmux?&lt;/li&gt;
&lt;li&gt;Why You Should Use tmux&lt;/li&gt;
&lt;li&gt;tmux Keeps Your Linux Sessions and Terminal Connections Alive&lt;/li&gt;
&lt;li&gt;Organizing Terminal Sessions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Install tmux&lt;/li&gt;
&lt;li&gt;
Essential tmux Commands

&lt;ul&gt;
&lt;li&gt;Start/Create a New tmux Session&lt;/li&gt;
&lt;li&gt;Detach from a tmux Session&lt;/li&gt;
&lt;li&gt;List tmux Sessions&lt;/li&gt;
&lt;li&gt;Reattach tmux Session&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  tmux: What It Is and Why You Should Use It &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I travel a lot for work and almost all of my work is done remotely. I doubt I'm really an exception here since, when you think about it, almost all server administration is handled remotely (not too many sysadmins plug in a monitor and keyboard and pull up a chair to the server rack). We all just SSH into our servers, even when we're in the same physical premises.&lt;/p&gt;

&lt;p&gt;The difference though is that, when you're working remotely as opposed to at the office or at home, your wifi connection is notoriously unreliable. Your connection can drop at any time without warning. If you happen to be doing some mission-critical task and you were just using a simple bash shell, guess what, your terminal and whatever processes you happened to be running die with it. If you were connected to a production server and writing data, this can be disastrous.&lt;/p&gt;

&lt;p&gt;Thankfully though, you can take out a cheap (free) insurance policy against this unpredictable risk: tmux. So what is tmux and how does it save us?&lt;/p&gt;

&lt;h3&gt;
  
  
  What is tmux? &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;tmux stands for "terminal multiplexer" and is basically a window manager for terminals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why You Should Use tmux &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ultimately, tmux allows you to keep persistent sessions running across servers. The following are some case-uses/benefits of running tmux.&lt;/p&gt;

&lt;h4&gt;
  
  
  tmux Keeps Your Linux Sessions and Terminal Connections Alive &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;When you create a new tmux session, a new terminal session is created within it and that session stays alive for the life of the tmux server (i.e. until you reboot) or you explicitly kill the tmux session. That means, if you unexpectedly lose connection, whatever you were running in that tmux session stays alive and continues to chug along, even when you're gone. Pretty great, eh?&lt;/p&gt;

&lt;p&gt;But wait, there's more!&lt;/p&gt;

&lt;h4&gt;
  
  
  Organizing Terminal Sessions &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;tmux is useful for more than just protecting you against unexpected terminal disconnects and can be a useful productivity tool for developers. Due to tmux's persistence, you can simply detach from one tmux session (keeping whatever it had) and create an additional one. This is particularly useful if you're &lt;a href="https://engineerworkshop.com/2019/12/01/how-to-set-up-a-remote-development-server/"&gt;running a remote development server&lt;/a&gt; in which you may be working on more than one project.&lt;/p&gt;

&lt;p&gt;For example, I was recently working on a new Handlebars.js theme for Ghost and had deployed a local development Docker container for it on my remote development server. My mom's birthday is coming up in a few months and so I then wanted to start some work on a new project for her present. I simply detached from my Handlebars.js session and created a new one. When I want to switch back, I can switch back to that other session just like I had never left.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install tmux &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Installing tmux is so easy, it barely justifies its own heading. To install tmux, simply execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;tmux
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Essential tmux Commands &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;With tmux installed, let's dive into some of the basic commands to get you started and on your way to using tmux.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start/Create a New tmux Session &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;To start a tmux session, simply enter the following command into your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;tmux new &lt;span class="nt"&gt;-s&lt;/span&gt; session_name
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9TCD-ghp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uyktf8lw1dy3qqngfa0d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9TCD-ghp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uyktf8lw1dy3qqngfa0d.jpg" alt="Creating a new session in tmux"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xE03tqOE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mogjfv8vhc43m5upv53d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xE03tqOE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mogjfv8vhc43m5upv53d.jpg" alt="New session in tmux"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The green bar at the bottom of the terminal shows that you are in a tmux session. Once you are in your tmux session, go about your business in the terminal as you always have.&lt;/p&gt;
&lt;h3&gt;
  
  
  Detach from a tmux Session &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;When you are done and wish to leave the current tmux session, enter the following command:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl + B followed by D&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TtoGo4De--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/44uwi7ygj8o80yovp1d4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TtoGo4De--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/44uwi7ygj8o80yovp1d4.jpg" alt="tmux session detached"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  List tmux Sessions &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It can be easy to forget what tmux sessions you have running on a given server (especially when you have multiple machines). In order to see a list of your currently running tmux sessions, use the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;tmux &lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hDX9dEwp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/i6yio213j0mgqis3t4zb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hDX9dEwp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/i6yio213j0mgqis3t4zb.jpg" alt="List of tmux sessions"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reattach tmux Session &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;When you've identified the tmux session you wish to connect to, use the following command to reattach to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;tmux attach-session &lt;span class="nt"&gt;-t&lt;/span&gt; &amp;lt;tmuxSessionNameHere&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aNr78NBj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gasorko8w5nf0yq972wz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aNr78NBj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gasorko8w5nf0yq972wz.jpg" alt="Reattaching to running tmux session"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J1l88Hqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/odwttd60setyhsq5tpb2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J1l88Hqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/odwttd60setyhsq5tpb2.jpg" alt="Reattached to tmux session"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations, you now know the basics of using tmux. tmux is a powerful utility that can be useful for protecting your terminal sessions from unexpected interruptions and in development workflows by allowing easy context switching.&lt;/p&gt;

&lt;p&gt;In future posts, we'll cover more advanced features such as controlling windows and panes.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tutorial</category>
      <category>linux</category>
    </item>
    <item>
      <title>Connecting VS Code with a Remote Development Server</title>
      <dc:creator>TorqueWrench</dc:creator>
      <pubDate>Wed, 08 Jan 2020 13:54:42 +0000</pubDate>
      <link>https://dev.to/torqu3wr3nch/connecting-vs-code-with-a-remote-development-server-4id9</link>
      <guid>https://dev.to/torqu3wr3nch/connecting-vs-code-with-a-remote-development-server-4id9</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Why Use a Remote Development Server?&lt;/li&gt;
&lt;li&gt;Benefits of Connecting VS Code with Remote SSH to a Remote Development Server&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;
VS Code Remote SSH Setup

&lt;ul&gt;
&lt;li&gt;Install the Remote Development extension pack in VS Code:&lt;/li&gt;
&lt;li&gt;Connect To The Remote Development Server&lt;/li&gt;
&lt;li&gt;Opening a Terminal in VS Code&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Previously, we discussed &lt;a href="https://engineerworkshop.com/2019/12/01/how-to-set-up-a-remote-development-server/"&gt;how to set up a remote development server&lt;/a&gt; that will allow you to work from wherever on whatever hardware (and OS) you choose. It's one of the first steps in a series of improvements that will revolutionize your development workflow, making you more productive. In today's guide, we will continue that work with how to set up remote SSH with Visual Studio Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use a Remote Development Server? &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;For those just joining in, &lt;a href="https://engineerworkshop.com/2019/12/01/how-to-set-up-a-remote-development-server/"&gt;I highly recommend that you go and read the first article in this series&lt;/a&gt;. But for the sake of completeness, I will offer an abbreviated summary of the advantages of using a remote development server:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Choose Your OS&lt;/strong&gt; - Using a remote development server means you get to choose the OS environment you enjoy working in. Like Windows but need to write code for a Linux server? No problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Superior/Upgradable Hardware&lt;/strong&gt; - A mobile CPU that draws 15 W under load is simply outclassed by a Xeon or a Threadripper. Remote development lets you offload heavy tasks to the servers that handle them best.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistence&lt;/strong&gt; - Remote development servers keep running even when you close your laptop lid. Have a time-consuming machine learning task? Let the remote development server grind away at it while you drive over to the coffee shop.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In short, using a remote development server means freedom: the freedom to choose your own OS, hardware, and work location. It gives you flexibility in your development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Connecting VS Code with Remote SSH to a Remote Development Server: &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In addition to the general benefits of using a remote development server described above, there are other benefits that are specific to using VS Code with Remote SSH. The biggest one is that remote development with VS Code is actually good and allows you to use your extensions.&lt;/p&gt;

&lt;p&gt;Elaborating a little more, when you set up remote SSH with VS Code, VS Code does it intelligently. It knows that certain extensions, such as theming, are best applied locally and so it applies those extensions locally. Other extensions, such as IntelliCode, are best run on the server and so it runs those extensions on the remote server. This is all accomplished by the VS Code Server which is installed on the remote host automatically when you first set up VS Code with remote SSH.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites: &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In order to add a remote development server to VSCode, I will assume you have completed the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A Running Ubuntu VM&lt;/strong&gt; - This will be our remote development server. Mine is called 'skunkworks' (half the fun + stress in creating a new server is naming it) and I run it out of a Proxmox virtualization server. &lt;a href="https://engineerworkshop.com/2019/12/01/how-to-set-up-a-remote-development-server/"&gt;My remote development server stack can again be found in the previous guide&lt;/a&gt;. An additional benefit of using VMs is that they're easily backed up and restored. Going to add a new service that you've never used before and may potentially ruin your pristine server? Take a snapshot and you can turn back time in seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The above server has a running SSH server installed&lt;/strong&gt; - Again, simple task described in the above guide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPN Access to Remote Development Server&lt;/strong&gt; - Not strictly necessary if you're always going to be working on the same network as the server, but if that were the case it would hardly be remote now would it? 😉 Some people suggest opening a port on your router and port forwarding your SSH connection across it, but I highly recommend &lt;strong&gt;NOT&lt;/strong&gt; to do this; take a look at your firewall logs sometime, there's a reason would-be attackers are always scanning port 22. Instead, I recommend that you set up a real VPN, that way even your connection to your "remote" development server is local from a network perspective. It's all about minimizing attack surfaces. My personal favorite is WireGuard since it's lightweight and can be installed locally on your VM. If you happen to already be &lt;a href="https://engineerworkshop.com/2019/12/11/how-to-set-up-wireguard-on-unraid/"&gt;running unRAID in your homelab, the process is even easier&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code Installed&lt;/strong&gt; - I assume that if you're reading a guide on how to set up remote SSH with VS Code that you actually have said VS Code installed...&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  VS Code Remote SSH Setup: &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;With the prerequisites out of the way, let's begin setting up a remote SSH connection to our development server on Visual Studio Code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install the Remote Development extension pack in VS Code: &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Navigate to Extensions (Ctrl + Shift + X) &amp;gt; Search for "remote development" &amp;gt; Choose the "Remote Development" extension from Microsoft and install:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mO3W5SKN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_tqfPDYE8wG-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mO3W5SKN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_tqfPDYE8wG-1.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;Steps to Install "Remote Development" extension from Microsoft in VS Code&lt;/p&gt;

&lt;h3&gt;
  
  
  Connect To The Remote Development Server: &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Launch the command palette (F1) and type "remote ssh". We're after "Remote-SSH: Connect to Host":&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sr_NHQB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_3UJi0OPkaK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sr_NHQB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_3UJi0OPkaK.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;Remote-SSH: Connect to Host&lt;/p&gt;

&lt;p&gt;You will then be prompted to either add a new SSH server or to go ahead and SSH to the remote server. I am going to assume you will want to routinely use this development server, therefore I recommend you select the "Add New SSH Host" option:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---XYkelXW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_Fqc6CIfNgk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---XYkelXW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_Fqc6CIfNgk.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll then be prompted to SSH into your remote development server with a command of the form: ssh @:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QIDTft-7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_mMqQrHTpwi-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QIDTft-7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_mMqQrHTpwi-1.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you've add your new SSH host, you should get a popup in the bottom right of VS Code. Click on it to connect:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lraNt3Ki--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_AW05fmX3dG.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lraNt3Ki--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_AW05fmX3dG.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you miss that pop-up, no worries. You won't have it anyway when you need to remote connect from VS Code in the future, so you may as well learn how to connect to SSH for future sessions. In order to initiate the remote SSH connection, again launch the command palette (F1) and type "remote ssh" selecting "Remote-SSH: Connect to Host" just like you did initially above, except this time instead of adding a new host, you'll just select your remote development server:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ufuIkANo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/image-5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ufuIkANo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/image-5.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A new window will open and you'll be prompted to enter your SSH password. (It's really easy to miss this prompt because of how VS Code's theme just blends in with the rest of the window, but it's right there at the top):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--22H19PJ0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_u7b3FySPvF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--22H19PJ0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_u7b3FySPvF.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After that, you'll be remoted into your remote development server, which you can confirm by checking the bottom left corner of the window:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KO-F7Fjj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_ZVleNdfanC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KO-F7Fjj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_ZVleNdfanC.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Opening a Terminal in VS Code: &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you want to open a terminal within VS Code, you can do so with Terminal &amp;gt; New Terminal (or use the shortcut Ctrl + Shift + `):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yMx35auE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_twJg4Au14B.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yMx35auE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_twJg4Au14B.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;Opening a terminal in VS Code&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--woCX6DWG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_RWqb2y8rNU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--woCX6DWG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://engineerworkshop.com/content/images/2020/01/Code_RWqb2y8rNU.png" alt="Connecting VS Code with a Remote Development Server"&gt;&lt;/a&gt;Terminal opened in remote development server&lt;/p&gt;

&lt;p&gt;That's it! Welcome to the world of remote development. It has transformed my coding workflow. I hope it does the same for you.&lt;/p&gt;




&lt;p&gt;As always, if you have any questions or comments, ask away below &lt;a href="https://forums.engineerworkshop.com/"&gt;or in the forums&lt;/a&gt;. The forums are also a great way to subscribe to the blog and receive updates when new guides are posted.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>productivity</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
