{"id":169440,"date":"2026-06-22T11:52:11","date_gmt":"2026-06-22T08:52:11","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=169440"},"modified":"2026-06-22T11:52:11","modified_gmt":"2026-06-22T08:52:11","slug":"cisco-device-access-control-passwords","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/cisco-device-access-control-passwords\/","title":{"rendered":"Configure Cisco Device Access Control with Local Passwords"},"content":{"rendered":"<p>A new Cisco router or switch trusts whoever can reach it. Anyone on the console lands in the <a href=\"https:\/\/computingforgeeks.com\/ccna-routers-and-catalyst-switch-ios-cli-editing-commands\/\">IOS CLI<\/a>, and from there the <code>enable<\/code> command opens full configuration with no password in the way. Device access control is the fix: a password on every way in, a strong hash on the privileged-mode secret, and named local accounts instead of a shared line password.<\/p>\n\n<p>This guide configures and verifies local password access control on a Cisco router, the console and VTY lines, the enable secret, and local user accounts, then covers the password policy elements the CCNA expects you to describe. It assumes the device already has a hostname and a working <a href=\"https:\/\/computingforgeeks.com\/cisco-device-base-configuration\/\">base configuration<\/a>, and it pairs with the <a href=\"https:\/\/computingforgeeks.com\/ccna-labs-ssh-access-configuration-on-gns3-and-packet-tracer\/\">SSH configuration guide<\/a>, which secures the remote side these VTY lines depend on.<\/p>\n\n<p><em>Tested June 2026 on Cisco IOS 15.2, securing a router from factory defaults.<\/em><\/p>\n\n<h2>The ways into a Cisco device<\/h2>\n\n<p>Before locking anything down, it helps to see what you are locking. The <a href=\"https:\/\/computingforgeeks.com\/network-devices-routers-switches-firewalls-explained\/\">routers and switches<\/a> in your network each expose a small number of management entry points, and each one is secured separately.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1340\" height=\"760\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/device-access-control-topology.png\" alt=\"Diagram showing console and SSH access paths to a Cisco router, each gated by a password, with enable secret for privileged mode\" class=\"wp-image-169436\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/device-access-control-topology.png 1340w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/device-access-control-topology-300x170.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/device-access-control-topology-1024x581.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/device-access-control-topology-768x436.png 768w\" sizes=\"auto, (max-width: 1340px) 100vw, 1340px\" \/><\/figure>\n\n\n<p>The <strong>console<\/strong> is out-of-band: a physical cable straight into the device, used for the first setup and for recovery when the network is down. The <strong>VTY lines<\/strong> are in-band: virtual terminals reached over the network with SSH (or, on insecure setups, Telnet). Both drop you into user EXEC mode, and the <strong>enable secret<\/strong> is the gate between user EXEC and the privileged mode where configuration happens. Secure all three, because a strong VTY password means nothing if the console is wide open.<\/p>\n\n<h2>Set the enable secret for privileged mode<\/h2>\n\n<p>The first command on any device is the enable secret. It protects the jump to privileged EXEC, and unlike the older <code>enable password<\/code>, it is stored as a one-way hash. Set it along with a named local account that has full privilege:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>configure terminal\nenable secret Str0ngEnable2026\nusername netadmin privilege 15 secret Adm1nPass2026<\/code><\/pre>\n\n\n<p>Never use <code>enable password<\/code> instead of <code>enable secret<\/code>. The plain <code>enable password<\/code> is stored either in clear text or as a trivially reversible Type 7 string, while <code>enable secret<\/code> is a proper hash. If both exist, the secret wins, so there is no reason to keep the weaker one.<\/p>\n\n<p>Check what the device actually stored:<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"412\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-secrets.png\" alt=\"Cisco IOS show running-config output: enable secret type 4, username secret type 4, and service password-encryption enabled\" class=\"wp-image-169437\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-secrets.png 2560w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-secrets-300x48.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-secrets-1024x165.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-secrets-768x124.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-secrets-1536x247.png 1536w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-secrets-2048x330.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n<p>Both the enable secret and the username secret are stored as a Type 4 hash on this IOS 15.2 image, shown by the <code>4<\/code> before the hash string. The number is the hashing scheme, and it matters more than it looks.<\/p>\n\n<h2>Password types, from worst to best<\/h2>\n\n<p>Cisco labels every stored password with a type number. Knowing them tells you at a glance whether a password is genuinely protected or just obscured.<\/p>\n\n<table>\n<thead><tr><th>Type<\/th><th>Algorithm<\/th><th>Reversible<\/th><th>Where you see it<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>0<\/td><td>None, stored in clear text<\/td><td>Not encrypted at all<\/td><td>A password before encryption is applied<\/td><\/tr>\n<tr><td>7<\/td><td>Cisco proprietary (Vigenere)<\/td><td>Yes, trivially<\/td><td><code>service password-encryption<\/code>, <code>enable password<\/code>, line passwords<\/td><\/tr>\n<tr><td>4<\/td><td>SHA-256 without a salt<\/td><td>No<\/td><td>Older <code>enable secret<\/code> \/ <code>username secret<\/code> (deprecated)<\/td><\/tr>\n<tr><td>5<\/td><td>Salted MD5<\/td><td>No<\/td><td>The classic IOS <code>enable secret<\/code> default<\/td><\/tr>\n<tr><td>8<\/td><td>PBKDF2 with SHA-256<\/td><td>No<\/td><td><code>enable algorithm-type sha256 secret<\/code><\/td><\/tr>\n<tr><td>9<\/td><td>scrypt<\/td><td>No<\/td><td><code>enable algorithm-type scrypt secret<\/code><\/td><\/tr>\n<\/tbody>\n<\/table>\n\n<p>Type 7 is the trap. It is not a hash, it is reversible encryption, and free tools decode it in seconds, so treat anything stored as Type 7 as readable by anyone who sees the config. The secret types (4, 5, 8, 9) are one-way hashes. Type 4 appeared in some IOS releases but was deprecated because it used SHA-256 without a salt, which made it weaker than intended; that is the type this older lab image produces. Classic IOS 15.x defaults the secret to Type 5, while current IOS-XE (16.12 and later) defaults to the much stronger Type 9 (scrypt); both support Type 8 and Type 9 with the <code>algorithm-type<\/code> keyword. The rule is simple: store secrets with the strongest type your platform offers, and never rely on Type 7 as real protection.<\/p>\n\n<h2>Create local accounts and use login local<\/h2>\n\n<p>A shared line password tells you someone logged in, but not who. Named local accounts fix that, and they are what SSH needs. The <code>username netadmin ... secret<\/code> line above created one; <code>login local<\/code> on a line tells it to authenticate against those accounts instead of a single shared password. That is the modern approach for the VTY lines, shown in the next section.<\/p>\n\n<h2>Secure the console line<\/h2>\n\n<p>The console still uses the classic line password plus <code>login<\/code>, which is enough for an out-of-band port that requires physical access. Add an idle timeout so an unattended session does not stay logged in, and <code>logging synchronous<\/code> so console log messages stop scrolling over what you are typing:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>line con 0\n password C0nsolePass\n login\n exec-timeout 5 0\n logging synchronous\n exit<\/code><\/pre>\n\n\n<p>The <code>exec-timeout 5 0<\/code> logs the line out after five minutes of inactivity. Setting it to <code>0 0<\/code> disables the timeout entirely, which is convenient in a lab and dangerous in production.<\/p>\n\n<h2>Secure the VTY lines for SSH<\/h2>\n\n<p>The VTY lines are the network-facing way in, so they get the named-account treatment and are locked to SSH only. The <code>transport input ssh<\/code> line is the one that matters most: it refuses clear-text Telnet outright:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>line vty 0 4\n login local\n transport input ssh\n exec-timeout 5 0\n exit<\/code><\/pre>\n\n\n<p>SSH itself needs a hostname, a domain name, and an RSA key pair before it works, which the <a href=\"https:\/\/computingforgeeks.com\/ccna-labs-ssh-access-configuration-on-gns3-and-packet-tracer\/\">SSH configuration guide<\/a> walks through end to end. Verify both lines after configuring them:<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"690\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-lines.png\" alt=\"Cisco IOS line con 0 with type 7 password and line vty 0 4 with login local and transport input ssh\" class=\"wp-image-169438\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-lines.png 2560w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-lines-300x81.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-lines-1024x276.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-lines-768x207.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-lines-1536x414.png 1536w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-dev-lines-2048x552.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n<p>The console shows <code>password 7<\/code> because <code>service password-encryption<\/code> is on, and the VTY lines show <code>login local<\/code> with <code>transport input ssh<\/code>. The contrast is the lesson: the console keeps a single shared password, the VTY lines authenticate named users over an encrypted channel.<\/p>\n\n<h2>What service password-encryption does and does not do<\/h2>\n\n<p>One global command encrypts the plain-text passwords sitting in the running config:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>service password-encryption<\/code><\/pre>\n\n\n<p>After this, the console line password is stored as Type 7 instead of clear text, which is why the verification above showed <code>password 7<\/code>. It is worth running, because it stops a clear-text password from being read over someone&#8217;s shoulder or out of a backup file. But it is obfuscation, not security. Type 7 is reversible in seconds, so <code>service password-encryption<\/code> never protects the enable secret or your real accounts; those are protected because they use a secret hash in the first place. Use both: secret hashes for the accounts and the enable secret, plus this command to cover the line passwords that have no hashed option.<\/p>\n\n<h2>Password policy elements<\/h2>\n\n<p>The CCNA also expects you to describe the policy around passwords, not just the commands. Three ideas come up.<\/p>\n\n<p><strong>Management<\/strong> is the lifecycle: rotate passwords on a schedule, store them in a proper secrets manager rather than a spreadsheet, change every default credential before a device goes live, and remove accounts when people leave. <strong>Complexity<\/strong> is what makes a single password hard to guess: a minimum length, a mix of character classes, and no dictionary words or device names. On IOS you can enforce some of this with the <code>aaa common-criteria policy<\/code> framework, but the policy itself is the point.<\/p>\n\n<p><strong>Password alternatives<\/strong> reduce how much a single password is worth. <strong>Multifactor authentication<\/strong> adds a second factor, something you have (a token or phone) or something you are (a fingerprint), so a stolen password alone is not enough. <strong>Certificates<\/strong> replace the password with a key pair signed by a trusted authority, the model behind SSH keys and 802.1X with EAP-TLS. <strong>Biometrics<\/strong> use a physical trait as the factor. Each one shrinks the value of guessing or stealing a password, which is why modern access control leans on them rather than passwords alone.<\/p>\n\n<h2>Verify device access control<\/h2>\n\n<p>Two commands confirm the state of access control. Filter the running config for the secured pieces, and list who is currently connected:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>show running-config | include enable secret|username|service password\nshow users<\/code><\/pre>\n\n\n<p>The <code>show running-config<\/code> filters confirm the secret types and that encryption is on, while <code>show users<\/code> lists the active console and VTY sessions so you can spot a connection you did not expect. The real test, though, is to open a fresh SSH session and confirm it prompts for a named user and then for the enable secret before it lets you configure anything.<\/p>\n\n<h2>Practice device access control<\/h2>\n\n<p>Run the questions to lock in the password types, the difference between the console and VTY lines, and where <code>login local<\/code> fits, then use the flashcards for quick recall.<\/p>\n\n<div class=\"cfg-quiz\" data-quiz=\"{\n  &quot;id&quot;: &quot;device-access-control&quot;,\n  &quot;title&quot;: &quot;Device access control and local passwords quiz&quot;,\n  &quot;objective&quot;: &quot;Configure and verify device access control using local passwords; describe password policy elements (5.3, 5.4)&quot;,\n  &quot;intro&quot;: &quot;Ten questions on securing access to a Cisco device: the enable secret, console and VTY lines, login local, the password types from Type 7 to Type 9, service password-encryption, and the password policy elements. Each answer has a written explanation.&quot;,\n  &quot;questions&quot;: [\n    {&quot;q&quot;: &quot;Which command sets a hashed password to protect privileged EXEC mode?&quot;, &quot;options&quot;: [&quot;enable password&quot;, &quot;enable secret&quot;, &quot;service password-encryption&quot;, &quot;password 7&quot;], &quot;answer&quot;: 1, &quot;explanation&quot;: &quot;enable secret stores the privileged-mode password as a one-way hash. enable password stores it in clear text or as a reversible Type 7 string, so it should never be used. If both exist, the secret takes effect.&quot;, &quot;validated&quot;: &quot;lab&quot;},\n    {&quot;q&quot;: &quot;A password stored as Type 7 in the running config is best described how?&quot;, &quot;options&quot;: [&quot;A strong one-way hash&quot;, &quot;Reversible encryption that is decoded in seconds&quot;, &quot;Plain text&quot;, &quot;A salted scrypt hash&quot;], &quot;answer&quot;: 1, &quot;explanation&quot;: &quot;Type 7 is Cisco&#039;s proprietary Vigenere encryption, not a hash. Free tools reverse it instantly, so a Type 7 password is obfuscated, not protected. It is what service password-encryption and enable password produce.&quot;, &quot;validated&quot;: &quot;lab&quot;},\n    {&quot;q&quot;: &quot;What does the service password-encryption command actually do?&quot;, &quot;options&quot;: [&quot;Hashes the enable secret with scrypt&quot;, &quot;Encrypts the clear-text line passwords as reversible Type 7&quot;, &quot;Forces all logins to use SSH&quot;, &quot;Requires multifactor authentication&quot;], &quot;answer&quot;: 1, &quot;explanation&quot;: &quot;It converts plain-text passwords in the config (such as line passwords) to Type 7. That stops shoulder-surfing and casual reading of a backup, but Type 7 is reversible, so it is obfuscation, not real security. The secret-based passwords are already hashed and do not need it.&quot;, &quot;validated&quot;: &quot;lab&quot;},\n    {&quot;type&quot;: &quot;match&quot;, &quot;q&quot;: &quot;Match each Cisco password type to its protection.&quot;, &quot;pairs&quot;: [{&quot;left&quot;: &quot;Type 0&quot;, &quot;right&quot;: &quot;Plain text, no protection&quot;}, {&quot;left&quot;: &quot;Type 7&quot;, &quot;right&quot;: &quot;Reversible, decoded in seconds&quot;}, {&quot;left&quot;: &quot;Type 5&quot;, &quot;right&quot;: &quot;Salted MD5 hash&quot;}, {&quot;left&quot;: &quot;Type 9&quot;, &quot;right&quot;: &quot;scrypt, the strongest&quot;}], &quot;explanation&quot;: &quot;Type 0 is clear text and Type 7 is reversible, so neither is real security. Type 5 (salted MD5) and Type 9 (scrypt) are one-way hashes; Type 9 is the strongest the CCNA covers. Store secrets with the strongest type your platform supports.&quot;, &quot;validated&quot;: &quot;doc&quot;},\n    {&quot;q&quot;: &quot;On a VTY line, what does the login local command do?&quot;, &quot;options&quot;: [&quot;Sets a single shared password for the line&quot;, &quot;Authenticates against the local username database&quot;, &quot;Disables the line&quot;, &quot;Allows Telnet and SSH&quot;], &quot;answer&quot;: 1, &quot;explanation&quot;: &quot;login local tells the line to check the locally configured username\/secret accounts instead of a single shared line password. Named accounts log who connected and are what SSH authentication uses.&quot;, &quot;validated&quot;: &quot;lab&quot;},\n    {&quot;q&quot;: &quot;What does transport input ssh on the VTY lines enforce?&quot;, &quot;options&quot;: [&quot;It allows both Telnet and SSH&quot;, &quot;It allows SSH only and refuses clear-text Telnet&quot;, &quot;It encrypts the console password&quot;, &quot;It sets the idle timeout&quot;], &quot;answer&quot;: 1, &quot;explanation&quot;: &quot;transport input ssh restricts the VTY lines to SSH and rejects Telnet, so management traffic is always encrypted. transport input telnet ssh would allow both, which is insecure.&quot;, &quot;validated&quot;: &quot;lab&quot;},\n    {&quot;type&quot;: &quot;numeric&quot;, &quot;q&quot;: &quot;With exec-timeout 5 0 set on a line, how many minutes of inactivity before the session is logged out? Type the number.&quot;, &quot;answer&quot;: &quot;5&quot;, &quot;hint&quot;: &quot;The first number is minutes, the second is seconds.&quot;, &quot;placeholder&quot;: &quot;e.g. 10&quot;, &quot;explanation&quot;: &quot;exec-timeout takes minutes then seconds, so 5 0 is five minutes. Setting it to 0 0 disables the timeout entirely, which is risky in production because an unattended session stays logged in.&quot;, &quot;validated&quot;: &quot;lab&quot;},\n    {&quot;q&quot;: &quot;Both enable password and enable secret are configured on a device. Which one takes effect?&quot;, &quot;options&quot;: [&quot;enable password&quot;, &quot;enable secret&quot;, &quot;Whichever was typed last&quot;, &quot;Both are required together&quot;], &quot;answer&quot;: 1, &quot;explanation&quot;: &quot;When both exist, the enable secret takes effect and the enable password is ignored. Because the secret is a hash and the password is not, there is no reason to keep the password at all.&quot;, &quot;validated&quot;: &quot;doc&quot;},\n    {&quot;type&quot;: &quot;multi&quot;, &quot;q&quot;: &quot;Which of the following are password alternatives that reduce reliance on a single password? Select all that apply.&quot;, &quot;options&quot;: [&quot;Multifactor authentication&quot;, &quot;Certificates (a signed key pair)&quot;, &quot;Biometrics&quot;, &quot;Setting service password-encryption&quot;], &quot;answers&quot;: [0, 1, 2], &quot;explanation&quot;: &quot;MFA adds a second factor, certificates replace the password with a signed key pair (as in SSH keys or EAP-TLS), and biometrics use a physical trait. service password-encryption only obfuscates existing passwords as Type 7; it is not a password alternative.&quot;, &quot;validated&quot;: &quot;doc&quot;},\n    {&quot;q&quot;: &quot;When securing device access, which order avoids locking yourself out?&quot;, &quot;options&quot;: [&quot;Save the config first, then test&quot;, &quot;Configure VTY lines, then set the enable secret last&quot;, &quot;Set the enable secret and a local user first, keep the console open, test SSH in a second session, then save&quot;, &quot;Disable the console line before configuring SSH&quot;], &quot;answer&quot;: 2, &quot;explanation&quot;: &quot;Set the enable secret and at least one username\/secret account before touching the lines, keep your console session open, confirm a new SSH session can log in and reach privileged mode, and only then run write memory. A wrong saved password otherwise means console password recovery.&quot;, &quot;validated&quot;: &quot;doc&quot;}\n  ]\n}\n\" data-quiz-count=\"10\"><div class=\"cfg-quiz-loading\">Loading quiz...<\/div><\/div>\n\n\n<p>Flip through the deck until the commands and password types are automatic, or grab the Anki pack to review them anywhere:<\/p>\n\n<div class=\"cfg-fc\" data-fc=\"{\n  &quot;id&quot;: &quot;device-access-control&quot;,\n  &quot;title&quot;: &quot;Device Access Control Flashcards&quot;,\n  &quot;objective&quot;: &quot;Configure and verify device access control using local passwords; describe password policy elements (5.3, 5.4)&quot;,\n  &quot;intro&quot;: &quot;The device-access facts worth knowing cold: enable secret vs enable password, the console and VTY lines, login local, the Cisco password types, service password-encryption, and password policy. Tap a card to flip it, then mark whether you knew it.&quot;,\n  &quot;cards&quot;: [\n    {&quot;front&quot;: &quot;enable secret vs enable password&quot;, &quot;back&quot;: &quot;enable secret stores the privileged-mode password as a one-way hash; enable password stores it in clear text or reversible Type 7. Always use enable secret. If both exist, the secret wins.&quot;},\n    {&quot;front&quot;: &quot;Console line vs VTY lines&quot;, &quot;back&quot;: &quot;The console (line con 0) is out-of-band: a physical cable for first setup and recovery. The VTY lines (line vty 0 4) are in-band virtual terminals reached over the network with SSH.&quot;},\n    {&quot;front&quot;: &quot;What does login local do on a line?&quot;, &quot;back&quot;: &quot;It authenticates against the local username\/secret database instead of a single shared line password, so logins are tied to named accounts. It is what SSH authentication uses.&quot;},\n    {&quot;front&quot;: &quot;transport input ssh&quot;, &quot;back&quot;: &quot;Restricts the VTY lines to SSH only and refuses clear-text Telnet, so management traffic is always encrypted.&quot;},\n    {&quot;front&quot;: &quot;Cisco password Type 0&quot;, &quot;back&quot;: &quot;Plain text, stored in clear with no protection at all.&quot;},\n    {&quot;front&quot;: &quot;Cisco password Type 7&quot;, &quot;back&quot;: &quot;Cisco proprietary Vigenere encryption. Reversible in seconds with free tools, so it is obfuscation, not security. Produced by service password-encryption and enable password.&quot;},\n    {&quot;front&quot;: &quot;Cisco password Type 5&quot;, &quot;back&quot;: &quot;Salted MD5 hash, a one-way hash and the common default for enable secret and username secret.&quot;},\n    {&quot;front&quot;: &quot;Cisco password Types 8 and 9&quot;, &quot;back&quot;: &quot;Type 8 is PBKDF2 with SHA-256; Type 9 is scrypt, the strongest the CCNA covers. Set them with enable algorithm-type sha256|scrypt secret on platforms that support them.&quot;},\n    {&quot;front&quot;: &quot;What does service password-encryption protect?&quot;, &quot;back&quot;: &quot;It converts clear-text line passwords to Type 7. Useful against shoulder-surfing and backups, but Type 7 is reversible, so it is not real security. Secrets are already hashed and do not need it.&quot;},\n    {&quot;front&quot;: &quot;exec-timeout 5 0&quot;, &quot;back&quot;: &quot;Logs the line out after 5 minutes of inactivity (minutes then seconds). exec-timeout 0 0 disables the timeout, which is risky in production.&quot;},\n    {&quot;front&quot;: &quot;logging synchronous&quot;, &quot;back&quot;: &quot;Reprints your current command line after a console log message interrupts it, so log output does not scramble what you are typing.&quot;},\n    {&quot;front&quot;: &quot;Why use named local accounts over a shared line password?&quot;, &quot;back&quot;: &quot;A shared password shows that someone logged in but not who. username ... secret accounts with login local tie each login to a person and are required for SSH.&quot;},\n    {&quot;front&quot;: &quot;Password policy: management&quot;, &quot;back&quot;: &quot;The lifecycle: rotate passwords on a schedule, store them in a secrets manager, change all default credentials before go-live, and remove accounts when people leave.&quot;},\n    {&quot;front&quot;: &quot;Password policy: complexity&quot;, &quot;back&quot;: &quot;What makes a password hard to guess: minimum length, a mix of character classes, and no dictionary words or device names.&quot;},\n    {&quot;front&quot;: &quot;Password alternatives&quot;, &quot;back&quot;: &quot;MFA (a second factor you have or are), certificates (a signed key pair, as in SSH keys or EAP-TLS), and biometrics. Each shrinks the value of a stolen or guessed password.&quot;},\n    {&quot;front&quot;: &quot;Safe order to avoid lockout&quot;, &quot;back&quot;: &quot;Set the enable secret and a local user first, keep the console session open, test a new SSH login to privileged mode in a second session, then write memory. A wrong saved password means console password recovery.&quot;}\n  ]\n}\n\" data-fc-anki=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/ccna-device-access-control-flashcards.apkg\"><div class=\"cfg-fc-loading\">Loading flashcards...<\/div><\/div>\n\n\n<h2>Save your work without locking yourself out<\/h2>\n\n<p>Access control is the one configuration that can lock you out of your own device, so the order matters. Set the enable secret and at least one <code>username ... secret<\/code> account before you touch the VTY lines, and keep your current console session open the whole time. Once SSH is configured, open a second session and confirm you can log in with the new account and reach privileged mode before you close the first one. Only then save the configuration:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>write memory<\/code><\/pre>\n\n\n<p>If a password is wrong and you have already saved, console-based password recovery is the way back, which is exactly why a locked wiring closet is part of access control. With the device secured, the next step is centralizing those accounts on a <a href=\"https:\/\/computingforgeeks.com\/aaa-radius-tacacs-explained\/\">RADIUS or TACACS+ server<\/a> so you are not managing local users on every device by hand. The <a href=\"https:\/\/computingforgeeks.com\/quickly-prepare-for-ccna-200-301-exam\/\">CCNA 200-301 study roadmap<\/a> shows where that fits in the Security Fundamentals path.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Configure and verify Cisco device access control with local passwords: enable secret, console and VTY lines, login local, the password types, and SSH.<\/p>\n","protected":false},"author":3,"featured_media":169439,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[299,55],"tags":[524,525],"cfg_series":[39888],"class_list":["post-169440","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-networking","tag-ccna","tag-cisco","cfg_series-ccna-200-301"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/169440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=169440"}],"version-history":[{"count":1,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/169440\/revisions"}],"predecessor-version":[{"id":169441,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/169440\/revisions\/169441"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/169439"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=169440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=169440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=169440"},{"taxonomy":"cfg_series","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/cfg_series?post=169440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}