SSH basics and configuration – Index

This post is to act as the index for the series of blog posts written on SSH. In the series, we discussed on what is SSH, how it works, different configuration options and few advanced features such as SSH tunneling. It can be used to get a quick overview of and navigate to find the related post of interest.

Part 01 – Basics of SSH, How it works, Various authentication methods, Generate SSH Key pairs

Read More »

Overview of SSH Tunneling and configuration options

This is the fifth post in the series of the blog posts about Secure Shell aka SSH. In this blog post, we’ll discuss about SSH tunneling and how to configure and use the same.

SSH port forwarding or SSH tunneling, is a mechanism in SSH for tunneling application ports from the client machine to the server machine or vice versa. It can be used for variety of purpose such as adding encryption to legacy applications, bypassing firewalls, opening backdoors into internal networks, etc. It is a double edged sword. It can be useful at the times but it can also be abused by hackers and malware to open access from the internet to the internal network.

Read More »

Customize SSH using Client side configuration options

This is the fourth blog post in the series of blog posts on the Secure Shell aka SSH. In the last post, we discussed how to customize SSH uing the server side configuration options. We discussed some of the most popular options and also shared location for list of full options available. In this blog post, we’ll discuss how we can customize the SSH session using some of the popular client side configuration options. Using these options can shape the way the connection is established and connection experience for the ssh clients.

Read More »

Customize SSH using server side configuration options

This is the third blog post in the series of blog posts on the Secure Shell aka SSH. In the last post, we discussed how to copy ssh public key to the remote server and then discussed few local options to create and customize ssh sessions. We also discussed about the usage of ssh-agent. In this blog post, we’ll discuss how we can customize the SSH session using some of the popular server side configuration options. Using these options can shape the way the connection is established and connection experience for the ssh clients.

Read More »

Basics of SSH, Generate SSH Key pairs and Establish SSH connections – Part 2

This is the second post in a series of blog posts on SSH. In the last blog post, we had overview of SSH protocol and how SSH authentication works. Then we discussed how to generate an SSH Key pair. As we discussed previously, we need to copy the SSH public key to the remote server and few other connection options. In this blog post, we are going to discuss the same.

Copying SSH Keys to the remote server

There are many ways to copy the public key generated to the remote machine. Below are some of the ways to copy the key.

Read More »

Basics of SSH, Generate SSH Key pairs and Establish SSH connections – Part 1

In a world full of Linux servers, containers and clients, SSH is one of the most used and most less understood protocols. Newer services such as related to container tooling, SSH over SSL have further abstracted away this protocol. But nevertheless, SSH continues to remain the primary means of establish connections with linux based operating systems and perform routine system administration and management related tasks. It also continues to be base of other important protocols / services such as SFTP, SSH tunneling, Virtual Private Network etc. This blog is first in series of blog posts about SSH or secure shell protocol, where we’ll discuss most of the things one should know about SSH.

Read More »

Upload Terraform State files to remote backend – Amazon S3 and Azure Storage Account

As you might have already learned, Terraform stores information about the infrastructure managed by it by using state files. By default, if we run Terraform code in a directory named /code/tf, it will record state in a file named /code/tf/terraform.tfstate file. This file contains data in JSON format which contains information about resources mentioned in the configuration files from the real-world infrastructure. Using this file, terraform knows what has been deployed and compare that to what has been mentioned in the configuration files, and come up with a plan on what needs to be changed. So its very critical that terraform is referring to correct state file, which ideally should be 1:1 mapping of real-world infrastructure.

Read More »

Storing and Managing Terraform files as Git Repository

This is the 7th part in the series of blog posts on managing the Azure DevOps using Terraform. You can find the series index here. Although this is the one of the part in the series, this can also be a completely independent post in itself. In this post, we’ll be using a Git repository to store the Terraform code files and discuss the best practices around it. This aligns with one of the practices in the Infrastructure as Code (IaC) framework and somewhat aligns with what is now a days known as GitOps framework. We’ll not go into details of if GitOps is suitable for Terraform or not into this post.

Read More »