SlideShare a Scribd company logo
Webinar
Gus Luxton
Solutions Engineer
Industry Best Practices
for SSH Access
Why securing SSH is important
● Managing access to servers has traditionally
involved sharing passwords via a password
manager or copying SSH keys around to servers
using automation.
● This doesn’t scale well with growing
organisations and can make
onboarding/offboarding users hard.
● Credential leaks and compromises are very real
and present a huge security risk.
● Once access is provided, there’s very
little visibility into what anyone is doing.
Summary
● Step 1: Switch from using public keys to certificates
● Step 2: Use a highly available bastion host as an access gateway
● Step 3: Enforce the use of a second factor
● Step 4: Get user identities from a identity provider
Step 1: Switch from public keys to certificates
Some pros of public keys
● Far more secure than shared passwords due to greater entropy
● Can’t be keylogged - nobody ever types a private key
● Cryptographically secure - reliable way to authenticate that the
person accessing your server actually has that private key in their
possession
Some cons of public keys
● Can be hard to keep track of which key goes where
● No expiration by default
● Requires a process for distribution to be useful
We’re all too busy for this...
● Lack of built-in accountability regarding what key belongs to who
● Makes credential rotation hard without building a separate process
Step 1: Switch from public keys to certificates
Some benefits of certificates
● All the benefits of public keys as described
beforehand, with none of the explicit downsides
● Support for additional metadata - add an email
address, internal username or ticket reference to
every certificate issued, and define a list of users that
the certificate is permitted to authenticate as
● Simple to issue and reissue without external
changes meaning credential expiry and rotation can
be built in automatically
● Can be revoked by synchronizing a CRL to servers
Certificate metadata: example
● Customizable ID that you can set per-certificate
● Short validity period to limit access by default
● Contains a list of authorized principals (logins) that the certificate will permit
● Extensions to limit permissions further if desired
But wait - there’s more!
It’s called “Trust on first use” or “TOFU” and represents a
fundamentally insecure model.
Messages like these can be a thing of the past if you switch to
using certificates to authenticate your hosts.
Anyone seen a prompt like this before?
Step 2: Use a bastion server for access
● In an era of more remote work we’re all connecting from different
locations regularly
● Whitelisting on a server-by-server basis is tricky - borderline impossible
● Bastions can be highly available and provide you with a reduced attack
surface by limiting locations you can connect from - no need for a VPN
● It doesn’t have to be hard - SSH supports the use of jump hosts out of
the box with the -J flag
● Blocking or revoking access becomes much simpler when you know that
all your connections are coming from a limited number of locations
● Provides a central location for logging and auditing access to your fleet
Step 3: Enforce the use of a second factor
● Two-factor authentication (2FA/2-Fac) refers to the idea of requiring
multiple factors before allowing access
○ “Something you know” like a password
○ “Something you have” like an authenticator app, or an SMS*
○ “Something you are” like a fingerprint/retina scan or voice print
● Lots of flexibility in ways to provide this
○ TOTP application - scan QR code, get a new code every 30 seconds
○ Push services like Duo, Okta, Auth0
○ Linux PAM (pluggable authentication modules) available for these
* SMS is not very secure. I don’t recommend you ever use it for a second factor.
● Can you make a list of every user you have?
○ Could you do this for 100 users? 1,000 users? 10,000
users?
● If an SSH user leaves, you want to revoke their access
○ How do you know you’ve got all their keys?
● Use an identity provider as the source of truth for users
○ Active Directory, Okta, OneLogin, Auth0, Github
○ One place to add users, one place to remove users
Step 4: Get identity from a third party
Summary
● Step 1: Switch from using public keys to certificates
● Step 2: Use a highly available bastion host as an access gateway
● Step 3: Enforce the use of a second factor
● Step 4: Get user identities from a identity provider
How can you do this easily?
● Open source, written in Go
● Written by engineers for engineers
● Doesn’t get in the way
● Fully compatible with SSH and your existing tooling
https://github.com/gravitational/teleport
Recommended Next Steps
Read “How to SSH Properly”
https://gravitational.com/blog/how-to-ssh-properly/
Check us out on Github
https://github.com/gravitational/teleport
Download Teleport
https://gravitational.com/teleport/download
Thanks!

More Related Content

PDF
Secure Developer Access at Decisiv
PDF
Webinar - 2020-09-23 - Escape the ticketing turmoil with Teleport PagerDuty &...
PDF
Industry Best Practices for SSH Access
PPTX
Ssl in a nutshell
PPTX
SSL/TLS
ODP
Tls 1.3
Secure Developer Access at Decisiv
Webinar - 2020-09-23 - Escape the ticketing turmoil with Teleport PagerDuty &...
Industry Best Practices for SSH Access
Ssl in a nutshell
SSL/TLS
Tls 1.3

What's hot (20)

PPTX
Introduction to SSL/TLS
PDF
SSL Secure socket layer
PPTX
TLS - Transport Layer Security
PDF
How ssl works
PPTX
Transport layer security (tls)
PPT
Cryptography - Overview
PPT
Ssl (Secure Sockets Layer)
PPT
ssl
PPTX
Ssl (Secure Socket Layer)
PDF
SSl/TLS Analysis
PPT
PPTX
secure socket layer
PPT
PPTX
SSL TLS Protocol
PPTX
Introduction to SSL and How to Exploit & Secure
PPTX
Secure Socket Layer
PPTX
TLS v1.3
PPTX
OpenSSL
PDF
SSL/TLS
Introduction to SSL/TLS
SSL Secure socket layer
TLS - Transport Layer Security
How ssl works
Transport layer security (tls)
Cryptography - Overview
Ssl (Secure Sockets Layer)
ssl
Ssl (Secure Socket Layer)
SSl/TLS Analysis
secure socket layer
SSL TLS Protocol
Introduction to SSL and How to Exploit & Secure
Secure Socket Layer
TLS v1.3
OpenSSL
SSL/TLS
Ad

Similar to Industry Best Practices For SSH - DevOps.com Webinar (20)

PPTX
Securing SSH Access by Pavel Shukhman at OWASP Ottawa Meetup, August 2019
PDF
Securing Your Resources with Short-Lived Certificates!
PPTX
Advanced Privileged Identity Management: Moving Beyond the Gateway Approach t...
PDF
Dssh @ Confidence, Prague 2010
PPTX
Gaining the benefits of risk reduction for your ssh key management project
PPTX
SSH Keys: Security Asset or Liability?
PPTX
The Myth of SSH Key Rotation Mythcracker Webcast Series Part 3
PDF
Introduction to Gravitational Teleport
PPTX
How to write secure code
PPT
Secure Gate / Reverse Proxy - WAF 1ere génération / Datelec
PDF
Centralise legacy auth at the ingress gateway, SREday
PDF
Centralise legacy auth at the ingress gateway
PPTX
Certificates, PKI, and SSL/TLS for infrastructure builders and operators
PPT
Introduction to distributed security concepts and public key infrastructure m...
PDF
IRJET- Data and Technical Security Issues in Cloud Computing Databases
PPTX
IoT Lockdown
PPTX
Application and Server Security
PDF
Stopping the Hassle of SSH keys by using SSH certificates - Community Summit ...
PPT
Secure Communication with an Insecure Internet Infrastructure
PDF
blobargasa hahahaha foooolz gold xd lol bla
Securing SSH Access by Pavel Shukhman at OWASP Ottawa Meetup, August 2019
Securing Your Resources with Short-Lived Certificates!
Advanced Privileged Identity Management: Moving Beyond the Gateway Approach t...
Dssh @ Confidence, Prague 2010
Gaining the benefits of risk reduction for your ssh key management project
SSH Keys: Security Asset or Liability?
The Myth of SSH Key Rotation Mythcracker Webcast Series Part 3
Introduction to Gravitational Teleport
How to write secure code
Secure Gate / Reverse Proxy - WAF 1ere génération / Datelec
Centralise legacy auth at the ingress gateway, SREday
Centralise legacy auth at the ingress gateway
Certificates, PKI, and SSL/TLS for infrastructure builders and operators
Introduction to distributed security concepts and public key infrastructure m...
IRJET- Data and Technical Security Issues in Cloud Computing Databases
IoT Lockdown
Application and Server Security
Stopping the Hassle of SSH keys by using SSH certificates - Community Summit ...
Secure Communication with an Insecure Internet Infrastructure
blobargasa hahahaha foooolz gold xd lol bla
Ad

Recently uploaded (20)

PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
top salesforce developer skills in 2025.pdf
PDF
System and Network Administraation Chapter 3
PPTX
history of c programming in notes for students .pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Digital Systems & Binary Numbers (comprehensive )
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Introduction to Artificial Intelligence
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Which alternative to Crystal Reports is best for small or large businesses.pdf
Transform Your Business with a Software ERP System
Understanding Forklifts - TECH EHS Solution
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
top salesforce developer skills in 2025.pdf
System and Network Administraation Chapter 3
history of c programming in notes for students .pptx
L1 - Introduction to python Backend.pptx
Designing Intelligence for the Shop Floor.pdf
Computer Software and OS of computer science of grade 11.pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Digital Systems & Binary Numbers (comprehensive )
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Reimagine Home Health with the Power of Agentic AI​
Introduction to Artificial Intelligence
How to Migrate SBCGlobal Email to Yahoo Easily
Design an Analysis of Algorithms II-SECS-1021-03
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

Industry Best Practices For SSH - DevOps.com Webinar

  • 1. Webinar Gus Luxton Solutions Engineer Industry Best Practices for SSH Access
  • 2. Why securing SSH is important ● Managing access to servers has traditionally involved sharing passwords via a password manager or copying SSH keys around to servers using automation. ● This doesn’t scale well with growing organisations and can make onboarding/offboarding users hard. ● Credential leaks and compromises are very real and present a huge security risk. ● Once access is provided, there’s very little visibility into what anyone is doing.
  • 3. Summary ● Step 1: Switch from using public keys to certificates ● Step 2: Use a highly available bastion host as an access gateway ● Step 3: Enforce the use of a second factor ● Step 4: Get user identities from a identity provider
  • 4. Step 1: Switch from public keys to certificates Some pros of public keys ● Far more secure than shared passwords due to greater entropy ● Can’t be keylogged - nobody ever types a private key ● Cryptographically secure - reliable way to authenticate that the person accessing your server actually has that private key in their possession
  • 5. Some cons of public keys ● Can be hard to keep track of which key goes where ● No expiration by default ● Requires a process for distribution to be useful We’re all too busy for this... ● Lack of built-in accountability regarding what key belongs to who ● Makes credential rotation hard without building a separate process Step 1: Switch from public keys to certificates
  • 6. Some benefits of certificates ● All the benefits of public keys as described beforehand, with none of the explicit downsides ● Support for additional metadata - add an email address, internal username or ticket reference to every certificate issued, and define a list of users that the certificate is permitted to authenticate as ● Simple to issue and reissue without external changes meaning credential expiry and rotation can be built in automatically ● Can be revoked by synchronizing a CRL to servers
  • 7. Certificate metadata: example ● Customizable ID that you can set per-certificate ● Short validity period to limit access by default ● Contains a list of authorized principals (logins) that the certificate will permit ● Extensions to limit permissions further if desired
  • 8. But wait - there’s more! It’s called “Trust on first use” or “TOFU” and represents a fundamentally insecure model. Messages like these can be a thing of the past if you switch to using certificates to authenticate your hosts. Anyone seen a prompt like this before?
  • 9. Step 2: Use a bastion server for access ● In an era of more remote work we’re all connecting from different locations regularly ● Whitelisting on a server-by-server basis is tricky - borderline impossible ● Bastions can be highly available and provide you with a reduced attack surface by limiting locations you can connect from - no need for a VPN ● It doesn’t have to be hard - SSH supports the use of jump hosts out of the box with the -J flag ● Blocking or revoking access becomes much simpler when you know that all your connections are coming from a limited number of locations ● Provides a central location for logging and auditing access to your fleet
  • 10. Step 3: Enforce the use of a second factor ● Two-factor authentication (2FA/2-Fac) refers to the idea of requiring multiple factors before allowing access ○ “Something you know” like a password ○ “Something you have” like an authenticator app, or an SMS* ○ “Something you are” like a fingerprint/retina scan or voice print ● Lots of flexibility in ways to provide this ○ TOTP application - scan QR code, get a new code every 30 seconds ○ Push services like Duo, Okta, Auth0 ○ Linux PAM (pluggable authentication modules) available for these * SMS is not very secure. I don’t recommend you ever use it for a second factor.
  • 11. ● Can you make a list of every user you have? ○ Could you do this for 100 users? 1,000 users? 10,000 users? ● If an SSH user leaves, you want to revoke their access ○ How do you know you’ve got all their keys? ● Use an identity provider as the source of truth for users ○ Active Directory, Okta, OneLogin, Auth0, Github ○ One place to add users, one place to remove users Step 4: Get identity from a third party
  • 12. Summary ● Step 1: Switch from using public keys to certificates ● Step 2: Use a highly available bastion host as an access gateway ● Step 3: Enforce the use of a second factor ● Step 4: Get user identities from a identity provider
  • 13. How can you do this easily? ● Open source, written in Go ● Written by engineers for engineers ● Doesn’t get in the way ● Fully compatible with SSH and your existing tooling https://github.com/gravitational/teleport
  • 14. Recommended Next Steps Read “How to SSH Properly” https://gravitational.com/blog/how-to-ssh-properly/ Check us out on Github https://github.com/gravitational/teleport Download Teleport https://gravitational.com/teleport/download