127 private links
No, there hasn’t been any new vulnerability found in SSH, nor am I denying the usefulness of SSH as a building block in the dev toolchain. This article is about why you shouldn’t be (and how you can avoid) using raw SSH sessions for development work.
In summary, how the author discovered screen, tmux, etc.
One of the main tool I use daily for any project is the fantastic tmux. It will change your terminal experience. What it is? How does it work? How to configure it?
I’ve helped thousands learn tmux through my free resource under the name The Tao of tmux, which I kept as part of the documentation for the tmuxp session manager. And now, it’s been expanded into a full-blown book with refined graphics, examples, and much more.
Tmux is great. Tmux defaults are not. How to make use of a brilliant tool without breaking your fingers?
There is often the desire to start "standard" or pre-configured workspaces in tmux
.
For example, run tail
on two log files in a pane, or to start both vim
and mysql
in a pane, etc.
If you try to find information about starting tmux
workspaces, you typically get advised to use wrapper programs such as tmuxinator
, tmux-resurrect
, or tmux-continuum
. These programs may be great, but the article proposes a simpler approach.
I personally like this approach.
I’ve been using tmux for about six months now and it has become just as essential to my workflow as vim. Pane and window management, copy-mode for navigating output, and session management make it a no-brainer for those who live in the terminal (and especially vim). I’ve compiled a list of tmux commands I use daily to help me work more efficiently.
Typically, you would connect to your server with an SSH client like PuTTY and after logging in you are dropped into a shell like Bash where you can enter commands and interact with the operating system. For most purposes, this simple setup suffices. However, in certain scenarios, you may need, or at least benefit, from expanding the capabilities of such a session with a terminal multiplexer like tmux. Just like the operating system running on your phone or computer can execute and display, side by side, multiple applications on its graphical user interface, so can tmux do with text-based programs and shell sessions.
A nice introduction and explanation about the tmux command line session manager.
tmux is a "terminal multiplexer", it enables a number of terminals (or windows) to be accessed and controlled from a single terminal. tmux is intended to be a simple, modern, BSD-licensed alternative to programs such as GNU screen.
Tmux (short for "Terminal Multiplexer") lets us launch multiple terminals in a flexible layout on a single screen, so that we can work with them side by side. For example, on one pane we can edit some config files with Vim, while on the other we are using irssi to chat and on other pane, tailing some logs. Then open another window to update your system, and another to SSH to some servers. Navigating through them is just as easy as creating all these windows and panes. It is perfectly configurable and customizable so it can become an extension of your mind.