How to Secure SSH Access
Graphic of secure SSH: server with padlock and key, key-based authentication, disabled root login, firewall rules, updated software, restricted users, logging and monitoring. +logs
Why SSH Security Matters More Than Ever
Every day, thousands of servers face relentless automated attacks targeting SSH access points. A single weak configuration can expose your entire infrastructure to unauthorized access, data breaches, and devastating security incidents. The reality is stark: SSH remains one of the most targeted services on the internet, and attackers are constantly evolving their methods to exploit vulnerabilities in poorly secured systems.
SSH, or Secure Shell, is a cryptographic network protocol that allows secure remote access to systems over unsecured networks. While the protocol itself is robust, its security depends entirely on how you implement and configure it. This means understanding not just one approach, but multiple layers of defense that work together to create a genuinely secure environment. From authentication methods to network-level restrictions, each element plays a critical role in protecting your systems.
In this comprehensive guide, you'll discover practical, battle-tested strategies for hardening SSH access. You'll learn how to implement key-based authentication, configure advanced security settings, restrict access at multiple levels, and monitor your systems for suspicious activity. Whether you're managing a single server or an entire fleet, these techniques will help you build a defense-in-depth strategy that significantly reduces your attack surface.
Understanding the SSH Security Landscape
Before diving into specific security measures, it's essential to understand what makes SSH both powerful and potentially vulnerable. SSH operates on port 22 by default, which makes it an obvious target for automated scanning tools that continuously probe the internet for accessible servers. These bots attempt dictionary attacks, brute-force password guessing, and exploit known vulnerabilities in outdated SSH implementations.
The good news is that SSH itself is cryptographically sound when properly configured. The protocol supports multiple authentication methods, strong encryption algorithms, and granular access controls. The challenge lies in moving beyond default configurations that prioritize convenience over security. Most SSH security breaches occur not because of protocol weaknesses, but due to human error, weak passwords, or misconfigured settings.
"The weakest link in SSH security is rarely the protocol itself, but the configuration choices made during deployment and the ongoing maintenance practices that follow."
Implementing Key-Based Authentication
Password authentication represents one of the most significant vulnerabilities in SSH security. Even complex passwords can be compromised through brute-force attacks, phishing, or credential stuffing. Key-based authentication eliminates this vulnerability by requiring possession of a private key file, making unauthorized access exponentially more difficult.
Generating Strong SSH Key Pairs
Creating a secure SSH key pair is your first step toward robust authentication. Modern best practices recommend using ED25519 keys, which offer excellent security with smaller key sizes and better performance than traditional RSA keys. When generating keys, always protect your private key with a strong passphrase, adding an additional layer of security even if the key file is somehow compromised.
The key generation process creates two files: a private key that remains on your local machine and should never be shared, and a public key that you place on remote servers. The cryptographic relationship between these keys ensures that only someone possessing the private key can authenticate, even though the public key is openly available on the server.
| Key Type | Security Level | Key Size | Performance | Recommended Use |
|---|---|---|---|---|
| ED25519 | Excellent | 256-bit | Fast | Primary recommendation for all new deployments |
| RSA 4096 | Very Good | 4096-bit | Moderate | Legacy systems requiring RSA compatibility |
| ECDSA | Good | 256-521-bit | Fast | Alternative when ED25519 unavailable |
| RSA 2048 | Adequate | 2048-bit | Slower | Minimum acceptable for compatibility only |
Deploying Public Keys Securely
Once you've generated your key pair, the public key needs to be added to the ~/.ssh/authorized_keys file on each server you want to access. This file contains one public key per line, and proper permissions are critical for security. The .ssh directory should have 700 permissions, while the authorized_keys file itself should be set to 600, ensuring that only the owner can read or modify these files.
Many administrators make the mistake of copying keys insecurely or setting overly permissive file permissions. SSH will often refuse to use key files with incorrect permissions, but this safety mechanism only works if you're paying attention to the warnings. Always verify permissions after deploying keys and test authentication before disabling password access.
Hardening SSH Configuration
The SSH daemon configuration file, typically located at /etc/ssh/sshd_config, contains dozens of settings that control how SSH operates. Default configurations prioritize compatibility and ease of use, but production environments demand a more security-focused approach. Each setting you modify should be documented and tested to ensure you understand its impact.
Essential Configuration Changes
Disabling password authentication is perhaps the single most impactful security change you can make. Once key-based authentication is working reliably, set PasswordAuthentication no in your configuration. This immediately eliminates the risk of password-based attacks, which represent the vast majority of SSH compromise attempts.
Changing the default SSH port from 22 to a non-standard port reduces automated attack traffic significantly. While this is security through obscurity and shouldn't be your only defense, it dramatically decreases the noise in your logs and reduces the load from bot traffic. Choose a port above 1024 to avoid conflicts with privileged services, and ensure your firewall rules reflect the change.
"Security is not a single action but a continuous process of layering defenses, monitoring threats, and adapting to new attack vectors as they emerge."
Disabling root login via SSH forces attackers to compromise two separate accounts: a regular user account and then escalate privileges separately. Set PermitRootLogin no to enforce this practice. Users who need administrative access should log in with their personal accounts and use sudo for privilege escalation, creating a clear audit trail of who performed which actions.
Advanced Security Settings
Protocol version 2 is the only version you should allow, as version 1 has known cryptographic weaknesses. Modern SSH installations default to protocol 2, but explicitly setting Protocol 2 ensures compatibility with older configurations doesn't compromise security.
Limiting which users or groups can access SSH provides granular control over access. Use the AllowUsers or AllowGroups directives to explicitly whitelist who can connect. This principle of least privilege ensures that even if an account is compromised, it can't be used for SSH access unless specifically authorized.
Setting appropriate timeout values prevents abandoned sessions from remaining connected indefinitely. Configure ClientAliveInterval and ClientAliveCountMax to automatically disconnect idle sessions after a reasonable period. This reduces the window of opportunity for someone to exploit an unattended terminal.
Implementing Network-Level Restrictions
Configuration changes within SSH itself are only part of a comprehensive security strategy. Network-level controls add additional layers that can stop attacks before they even reach the SSH daemon. These controls operate at the firewall and network stack level, providing defense in depth.
Firewall Rules and Port Filtering
A properly configured firewall should restrict SSH access to known IP addresses or networks whenever possible. If your administrative team connects from specific locations, whitelist only those IP ranges. For dynamic environments where IP addresses change frequently, consider implementing a VPN that provides a consistent source network for firewall rules.
Rate limiting at the firewall level can prevent brute-force attacks by limiting how many connection attempts are allowed from a single IP address within a given timeframe. Tools like iptables or nftables on Linux systems can drop packets from sources that exceed connection thresholds, effectively blocking automated attack tools.
Using Port Knocking and Single Packet Authorization
Port knocking adds an additional layer of obscurity by keeping the SSH port closed until a specific sequence of connection attempts is made to predetermined ports. While not a replacement for strong authentication, it makes your SSH service invisible to port scanners and automated attacks. Single Packet Authorization (SPA) takes this concept further by requiring a cryptographically signed packet before opening the SSH port.
These techniques require additional software and configuration but can be valuable in high-security environments or when dealing with persistent targeted attacks. The key is implementing them in addition to, not instead of, fundamental security measures like key-based authentication and proper configuration.
Multi-Factor Authentication for SSH
Even with key-based authentication, adding a second factor significantly increases security. Multi-factor authentication (MFA) requires something you have (the SSH key) and something you know (a time-based code) or something you are (biometric data). This makes compromise far more difficult, as an attacker would need to steal both factors simultaneously.
Implementing TOTP-Based Authentication
Time-based One-Time Password (TOTP) authentication integrates with SSH through PAM (Pluggable Authentication Modules). Tools like Google Authenticator or Duo Security can generate time-synchronized codes that must be entered along with key-based authentication. This approach is particularly valuable for administrative accounts with elevated privileges.
Setting up TOTP requires careful planning to avoid locking yourself out. Always configure and test MFA while you still have an active session, and maintain emergency access methods such as console access or out-of-band authentication. Document the recovery process and ensure multiple administrators understand the procedure.
"Adding multiple authentication factors transforms SSH from a single point of failure into a layered defense system where compromising one element doesn't grant complete access."
Monitoring and Auditing SSH Access
Security measures are only effective if you can detect when they're being tested or breached. Comprehensive logging and monitoring allow you to identify attack patterns, detect compromised credentials, and respond to incidents before they escalate. SSH generates detailed logs that, when properly analyzed, provide invaluable security intelligence.
Essential Logging Practices
SSH logs typically reside in /var/log/auth.log or /var/log/secure depending on your distribution. These logs record every authentication attempt, successful connection, and session termination. Regular review of these logs helps identify unusual patterns such as authentication attempts from unexpected locations, repeated failed login attempts, or connections at unusual times.
Automated log analysis tools can alert you to suspicious activity in real-time. Tools like fail2ban automatically block IP addresses that show malicious behavior, such as repeated failed authentication attempts. Configure these tools to send alerts for significant events, ensuring that security incidents receive immediate attention.
| Log Event Type | Severity | Recommended Action | Typical Cause |
|---|---|---|---|
| Failed password attempts | Medium | Monitor and block after threshold | Brute force attack or user error |
| Successful root login | High | Immediate investigation if root login disabled | Configuration error or compromise |
| Connection from new IP | Low-Medium | Verify legitimacy with user | User traveling or VPN change |
| Multiple rapid connections | Medium-High | Investigate for automated tools | Scanning activity or legitimate scripts |
| Successful key authentication | Informational | Regular audit for unusual patterns | Normal administrative activity |
Session Recording and Audit Trails
For environments with strict compliance requirements, session recording provides a complete audit trail of what occurred during each SSH session. Tools like tlog or Teleport record entire sessions, including commands executed and output generated. This capability is invaluable for forensic analysis after an incident and helps satisfy regulatory requirements.
Session recording must be implemented thoughtfully to balance security with privacy and system performance. Clear policies should define when recording occurs, how long recordings are retained, and who can access them. Users should be notified that sessions are recorded, both for legal reasons and to encourage proper behavior.
Managing SSH Keys at Scale
As your infrastructure grows, managing SSH keys becomes increasingly complex. Organizations with hundreds or thousands of servers and multiple administrators need systematic approaches to key management, rotation, and revocation. Ad-hoc key management quickly becomes unmanageable and creates security gaps.
Centralized Key Management Solutions
Certificate-based authentication using SSH certificates provides centralized control over key validity and permissions. Instead of distributing public keys to every server, you configure servers to trust a Certificate Authority (CA). User keys are then signed by this CA, creating short-lived certificates that automatically expire. This approach simplifies key distribution and enables rapid revocation when employees leave or keys are compromised.
Tools like HashiCorp Vault, Teleport, or custom certificate authority implementations can manage the entire certificate lifecycle. These systems integrate with identity providers, enforce access policies, and provide detailed audit logs of who accessed which systems and when. The initial setup complexity is offset by dramatically simplified ongoing management.
Key Rotation and Lifecycle Management
SSH keys should be rotated regularly, just like passwords. Establish a policy defining key rotation intervals based on your security requirements and risk tolerance. Critical systems might require quarterly rotation, while less sensitive environments might rotate annually. The key is having a documented process that can be executed consistently.
Automated key rotation tools can handle the technical aspects of generating new keys, distributing them to servers, and removing old keys after a grace period. This automation reduces human error and ensures rotation actually happens according to policy rather than being perpetually postponed due to perceived complexity.
"Effective key management isn't about perfection from day one, but about establishing processes that scale with your infrastructure and improve continuously based on operational experience."
SSH Bastions and Jump Hosts
Direct SSH access to production servers creates a large attack surface. Bastion hosts, also called jump hosts, provide a single, heavily monitored entry point for administrative access. Users SSH to the bastion first, then connect to internal servers from there. This architecture concentrates security controls and monitoring at a single point.
Designing a Bastion Architecture
A well-designed bastion host runs minimal services, has extensive logging and monitoring, and implements the strictest security controls. The bastion should be hardened beyond typical servers, with aggressive firewall rules, mandatory MFA, and comprehensive session recording. Since all administrative access flows through this point, it becomes your most critical security infrastructure.
Bastion hosts should not store sensitive data or run production services. Their sole purpose is providing secure access to other systems. This focused role makes them easier to secure, monitor, and audit. Consider deploying redundant bastions for availability, but ensure each is independently secured and monitored.
Implementing SSH ProxyJump
Modern SSH clients support ProxyJump, which allows transparent connection through bastion hosts without manual two-step connections. Users configure their SSH client once, and subsequent connections automatically route through the bastion. This convenience encourages adoption while maintaining security, as users don't need to remember complex connection procedures.
ProxyJump configurations can enforce that all connections to production systems must traverse the bastion, preventing users from establishing direct connections even if firewall rules would allow it. This provides both technical and policy enforcement, ensuring that the bastion's monitoring and access controls are never bypassed.
Securing SSH for Automated Systems
Automated systems, scripts, and CI/CD pipelines often require SSH access without human interaction. These use cases present unique challenges, as you need to balance security with the requirement for unattended operation. The solutions differ from interactive user access and require careful planning.
Service Accounts and Restricted Keys
Automated access should use dedicated service accounts with tightly restricted permissions. These accounts should only have access to the specific systems and commands they need, enforced through SSH key restrictions and server-side authorization rules. Never use personal accounts for automated access, as this makes auditing and access revocation nearly impossible.
SSH supports command restrictions that limit what a particular key can execute. By prepending command="/path/to/script" to a public key in the authorized_keys file, you ensure that key can only execute that specific command, regardless of what the client requests. This technique is invaluable for automated systems that need to perform a specific task without requiring full shell access.
Secrets Management for Automation
Private keys for automated systems should never be stored in source code or configuration files. Secrets management systems like HashiCorp Vault, AWS Secrets Manager, or Azure Key Vault provide secure storage and access control for sensitive credentials. These systems can generate short-lived credentials, automatically rotate keys, and provide detailed audit logs of credential access.
Integrating secrets management into your automation pipelines requires initial setup effort but dramatically improves security. Credentials are never exposed in logs, can be rotated without updating code, and access can be revoked instantly when needed. This approach scales far better than manual key management as your automation grows.
"Automation security requires shifting from 'who has access' to 'what has access for how long and to do exactly what,' with every aspect logged and auditable."
Responding to SSH Security Incidents
Despite your best efforts, security incidents may occur. Having a prepared response plan makes the difference between a minor incident and a major breach. Your response should be swift, systematic, and focused on containment first, then investigation, and finally remediation.
Incident Detection and Initial Response
Early detection is critical. Monitoring systems should alert you immediately when suspicious activity occurs, such as authentication from unexpected locations, unusual command execution patterns, or modifications to SSH configuration files. When an alert triggers, your first priority is determining whether it represents genuine malicious activity or a false positive.
If you confirm malicious activity, immediately contain the incident by blocking the attacker's access. This might involve firewall rules, disabling compromised accounts, or in severe cases, temporarily disabling SSH entirely while you investigate. Documentation of every action taken is essential for post-incident analysis and potential legal proceedings.
Investigation and Forensics
Once containment is achieved, thorough investigation determines the scope of the breach. Review logs to identify when unauthorized access began, which systems were accessed, and what actions were taken. Session recordings, if available, provide invaluable insight into attacker behavior and intentions.
Forensic analysis should identify how the breach occurred. Was it a compromised key, a configuration vulnerability, or a zero-day exploit? Understanding the attack vector is essential for preventing recurrence. Consider engaging external security experts for serious incidents, as they bring experience and objectivity that internal teams may lack under stress.
Remediation and Lessons Learned
After investigating, systematic remediation addresses the vulnerabilities that allowed the incident. This might involve rotating all SSH keys, patching systems, modifying configurations, or implementing additional controls. Remediation should be comprehensive rather than addressing only the specific vulnerability exploited, as attackers often probe for multiple weaknesses.
Post-incident reviews extract lessons that improve future security. Document what happened, how it was detected, how the response proceeded, and what could be improved. Share these lessons across your organization to prevent similar incidents elsewhere. The goal isn't assigning blame but building organizational knowledge and resilience.
Compliance and SSH Security Standards
Many organizations must comply with regulatory frameworks that include specific requirements for remote access security. Standards like PCI DSS, HIPAA, SOC 2, and various government frameworks all address SSH security, though often indirectly through requirements for encryption, access control, and audit logging.
Mapping Requirements to Implementation
Compliance frameworks typically require that remote access uses strong encryption, implements MFA, maintains comprehensive audit logs, and restricts access based on business need. Your SSH security implementation should explicitly map to these requirements, documenting how each control satisfies specific compliance obligations.
Regular compliance audits verify that controls remain effective and properly configured. Automated compliance checking tools can continuously monitor SSH configurations against your security baseline, alerting when drift occurs. This proactive approach prevents compliance failures and demonstrates due diligence to auditors and regulators.
Documentation and Evidence Collection
Compliance requires extensive documentation proving that controls exist and function correctly. Maintain documentation of your SSH security architecture, configuration standards, key management procedures, and incident response plans. Collect evidence of control effectiveness through log reviews, penetration testing results, and configuration audits.
Many organizations struggle with compliance not because controls are inadequate, but because documentation is incomplete or evidence collection is ad-hoc. Treat documentation as an ongoing process rather than a pre-audit scramble. Automated tools that generate compliance reports from existing logs and configurations reduce manual effort while improving accuracy.
"Compliance isn't just checking boxes; it's demonstrating through documentation and evidence that your security controls effectively protect sensitive data and systems."
Emerging SSH Security Technologies
SSH security continues to evolve with new technologies and approaches that address modern threats and operational challenges. Staying informed about these developments helps you adopt improvements that strengthen your security posture while potentially simplifying management.
Zero Trust Architecture for SSH
Zero trust principles assume that no connection is inherently trustworthy, even from inside your network. Applied to SSH, this means continuous verification of identity, device health, and authorization for every connection and throughout each session. Technologies like device certificates, continuous authentication, and behavior analysis implement zero trust for SSH access.
Implementing zero trust for SSH requires rethinking traditional perimeter-based security. Instead of trusting connections from your corporate network, each connection is independently verified regardless of source. This approach better reflects modern reality, where attackers often operate from within compromised networks and traditional perimeter defenses have limited effectiveness.
Quantum-Resistant Cryptography
Quantum computing threatens current cryptographic algorithms, including those used by SSH. While practical quantum computers capable of breaking SSH encryption don't yet exist, forward-thinking organizations are beginning to evaluate and test quantum-resistant algorithms. The SSH protocol is being extended to support post-quantum cryptography, ensuring long-term security.
Transitioning to quantum-resistant cryptography will take years and requires careful planning to maintain compatibility while adopting new algorithms. Stay informed about developments in this space and participate in testing when quantum-resistant SSH implementations become available. The goal is being prepared before quantum threats materialize rather than scrambling to respond after the fact.
Building a Sustainable SSH Security Program
SSH security isn't a one-time project but an ongoing program requiring continuous attention, improvement, and adaptation. Sustainable programs balance security with operational needs, evolve with changing threats, and maintain effectiveness through organizational changes.
Establishing Security Baselines
Define clear security baselines that specify required configurations, approved authentication methods, and mandatory controls for different system classifications. Critical production systems might require MFA and certificate-based authentication, while development systems might have slightly relaxed requirements. Document these baselines and ensure they're consistently applied across your infrastructure.
Configuration management tools enforce baselines automatically, detecting and correcting drift from approved configurations. This automation ensures that security standards are maintained even as infrastructure scales and multiple administrators make changes. Regular reviews of your baselines ensure they remain appropriate as technology and threats evolve.
Continuous Improvement and Adaptation
Security programs must adapt to new threats, technologies, and organizational needs. Establish regular review cycles where you assess current controls, evaluate new security technologies, and incorporate lessons from incidents and near-misses. This continuous improvement approach prevents your security from becoming stale and ineffective.
Engage with the broader security community to stay informed about emerging threats and best practices. Participate in information sharing groups, attend security conferences, and follow security researchers who focus on SSH and remote access security. The investment in staying current pays dividends by helping you anticipate and prepare for threats before they impact your organization.
Practical Implementation Roadmap
Transforming SSH security from current state to best practice can seem overwhelming. A phased approach breaks the journey into manageable steps, allowing you to make steady progress while maintaining operational stability. Each phase builds on previous work, creating cumulative security improvements.
🔐 Phase One: Foundation
- Audit current SSH configurations across all systems
- Implement key-based authentication for all users
- Disable password authentication once keys are deployed
- Change SSH to a non-standard port
- Disable root login via SSH
- Implement basic firewall rules restricting SSH access
- Enable comprehensive logging
🛡️ Phase Two: Hardening
- Deploy fail2ban or similar automated blocking
- Implement MFA for administrative accounts
- Establish bastion host architecture
- Configure session timeouts and idle disconnection
- Implement SSH key rotation procedures
- Deploy centralized log collection and analysis
- Conduct security training for administrators
🚀 Phase Three: Advanced Security
- Transition to certificate-based authentication
- Implement comprehensive session recording
- Deploy automated compliance checking
- Integrate with secrets management systems
- Establish zero trust principles for SSH access
- Implement advanced monitoring and anomaly detection
- Conduct regular penetration testing
📊 Phase Four: Optimization
- Refine alerting to reduce false positives
- Automate response to common security events
- Optimize performance while maintaining security
- Document all procedures and configurations
- Establish metrics for measuring security effectiveness
- Create disaster recovery and incident response playbooks
- Conduct tabletop exercises testing incident response
🔄 Phase Five: Continuous Improvement
- Regular security assessments and audits
- Evaluation of emerging security technologies
- Refinement of policies based on operational experience
- Ongoing training and awareness programs
- Participation in security community and information sharing
- Quarterly review and update of security baselines
- Annual comprehensive security program review
Each organization's journey will differ based on current security posture, available resources, and specific requirements. The key is starting with foundational security measures and progressively building more sophisticated controls. Don't let perfect be the enemy of good; implementing basic security improvements immediately provides far more value than endlessly planning a perfect security architecture that never materializes.
Throughout implementation, maintain clear communication with stakeholders about changes, their purposes, and their impacts. Security measures that surprise users or disrupt workflows face resistance and workarounds that undermine their effectiveness. By explaining the reasoning behind security controls and involving users in the implementation process, you build support rather than resentment.
Measure and communicate the results of your security improvements. Track metrics like failed authentication attempts, time to detect incidents, and compliance audit results. Demonstrating tangible improvements helps justify continued investment in security and builds organizational confidence in your security program.
FAQ: Frequently Asked Questions About SSH Security
What is the most important single step to secure SSH?
Implementing key-based authentication and disabling password authentication is the single most impactful security improvement. This eliminates the vast majority of automated attacks that rely on password guessing. However, SSH security requires multiple layers, so while this is the most important first step, it shouldn't be your only security measure.
How often should SSH keys be rotated?
Key rotation frequency depends on your security requirements and risk tolerance. For most organizations, annual rotation of user keys and quarterly rotation of service account keys provides a reasonable balance between security and operational overhead. High-security environments may require more frequent rotation, while certificate-based authentication with short-lived certificates can eliminate the need for manual rotation entirely.
Is changing the default SSH port really effective security?
Changing the SSH port is security through obscurity and shouldn't be your primary defense, but it does significantly reduce automated attack traffic and log noise. Think of it as a supplementary measure that makes attacks slightly more difficult while dramatically reducing the background noise of internet-wide scanning. It's worth implementing but never rely on it as your main security control.
What's the difference between SSH keys and SSH certificates?
SSH keys are static public-private key pairs where the public key is distributed to servers. SSH certificates are public keys signed by a Certificate Authority (CA), creating a trust relationship where servers trust the CA rather than individual keys. Certificates can have expiration dates and can be revoked, making them more manageable at scale than distributing individual public keys to every server.
How can I secure SSH access for automated systems without storing keys in code?
Use a secrets management system like HashiCorp Vault, AWS Secrets Manager, or Azure Key Vault to store and manage SSH keys for automated systems. These tools provide API-based access to credentials, support automatic rotation, maintain audit logs, and allow fine-grained access control. Your automation retrieves credentials at runtime rather than having them embedded in code or configuration files.
What should I do if I suspect an SSH key has been compromised?
Immediately remove the compromised public key from all servers' authorized_keys files to prevent further access. Review logs to determine what systems were accessed and what actions were taken. Generate a new key pair for the affected user and investigate how the compromise occurred. If the compromise is serious, consider rotating all SSH keys and implementing additional security measures like MFA to prevent recurrence.
Do I need MFA for SSH if I'm already using key-based authentication?
While key-based authentication is strong, MFA adds valuable defense in depth, especially for administrative accounts. If an attacker somehow obtains a private key (through malware, physical access, or backup compromise), MFA prevents them from using it. For high-security environments or privileged accounts, the additional security is worth the operational overhead.
How do I balance SSH security with operational convenience?
Use tools like SSH config files with ProxyJump, SSH agent forwarding, and certificate-based authentication to make secure access convenient. Well-designed security shouldn't require users to jump through excessive hoops for routine tasks. When security measures are too burdensome, users find workarounds that undermine security. The goal is making secure access the path of least resistance.