Podcast
Root Causes 221: What Are SSH Keys?


Hosted by
Tim Callan
Chief Compliance Officer
Jason Soroko
Fellow
Original broadcast date
May 5, 2022
SSH (Secure Shell) keys are ubiquitous for authenticated access to Linux systems. In this first of three episodes we explain what these keys are and how they're used.
Podcast Transcript
Lightly edited for flow and brevity.
So how do you get to the shell? How do you type in commands from your workstation computer to that other computer that’s remote to you? Well, you need to get to that command line. You need to be able to enter the commands but typing it from your own computer. And that’s what we mean by remote access. And what are you remotely accessing? You’re remotely accessing the shell. Now over the years, Tim, there’s been a lot of ways to do that, as you know. And back, I think it was 1995 when the idea of SSH first came about and was designed and eventually became what most people use today, which is OpenSSH, which is part of most Linux distributions, which essentially uses a key pair to be able to do this remote access. So think about the use case you and I talk about probably most commonly, which is SSL, SSL using TLS certificates, which essentially is putting – it’s using a key pair to be able to encrypt traffic between a web browser and a web server. In the case of Secure Shell, this is a protocol that is very specific that enables a client computer, your workstation, to securely communicate to the remote Linux server. So again, it’s a client server type of concept and similarly to the way SSL works, with an SSL certificate which includes a key pair, in the case of traditional SSH, it’s using only the key pair typically, it’s not using certificates. That’s something we’re going to get into by Episode 3 of this particular series of podcasts. We’re going to be talking about the problems of just using the public and private key pair, but I think that what’s most important to note is, we’re going to go right through why that has been problematic from Day 1. Even though this is so ubiquitous, it works very well, the problem is, I think it’s a golden age to be a bad guy, and I also think it’s because the reason why it’s just been typically raw key pairs for years and years with Secure Shell, it really comes down to the fact that managing the lifecycle of these identities that are created, this particular credential form factor of key pairs, the technology to automate that just hasn’t been there, from Day 1.
That means that – and you could have the most terrific monitoring tools. You could have all kinds of security practices in place, but if that private key is compromised, you’re in a lot of trouble. Don’t forget, there’s a lot of ways that that key can be compromised. It’s not just somebody compromising an endpoint. You might have the human error factor, which is, alright I authenticate a lot. I need to build automation software. I’m going to go and make an ansible script and put in my private key.
As well, Tim, you’ve said a couple times now, let’s keep in mind this is not certificates-based. Certificates are synonymous with policy. A raw key pair has no policy by definition.

