Open the practical working record for this guideโs task-specific fields and next action.
Verify the actual authentication path and fallback
Record the hardware model, firmware and FIDO-capable OpenSSH build. Resident recovery creates local handle/public files; it does not export the authenticatorโs signing secret. Test an explicit public-key identity so password fallback or an existing multiplexed connection does not masquerade as a new key authentication. Server enforcement and a tested recovery path remain separate from client generation options. Source and scope.
Kali Linux YubiKey SSH Flow
The weakest part of most SSH setups isnโt the mathโitโs the private key file you didnโt realize you duplicated, synced, or left behind. A Kali Linux YubiKey SSH flow using FIDO2 keeps the secret on the hardware, so a โnew laptop overnightโ doesnโt turn into a key scavenger hunt.
ed25519-sk is OpenSSHโs security-key type. A local handle file is still created, but the authenticatorโs signing secret is not exported. Default signatures require user presence; verify-required requests user verification as well. Resident credentials allow handle recovery on another computer. Hardware-backed signing does not replace SSH host-key verification or protect an already compromised client session.
Keep guessing and you eventually pay for it: one reimage, one agent conflict, one โwrong identity offered,โ and suddenly access becomes a midnight troubleshooting ritual. This guide turns it into a boring, repeatable routine: preflight checks, a clean ssh-keygen command, tight authorized_keys, ssh-keygen -K portability, and per-host config that makes the right key the default.
Kali-first. Rebuild-friendly. Lockout-averse.
Then roll it outโone safe rung at a time.
Table of Contents
Resident credentials: distinguish handles from signing secrets
Letโs start with the core idea in plain English: with FIDO2 SSH keys (the -sk kind), youโre not protecting a file on disk as much as youโre protecting the ability to ask the key to sign. That ability lives on the YubiKey. No YubiKey, no signature. And thatโs the point.
Now the decision you canโt skip: resident (discoverable) vs non-resident (non-discoverable). It sounds like an implementation detail. It is not. It changes portability, recovery, and how โrebuild-friendlyโ your life becomes.
- Resident: key is discoverable on the YubiKey; you can rehydrate on a new machine.
- Non-resident: the client needs a local โhandleโ to find the key; portability is more manual.
- Either way, touch/PIN gates decide daily UX.
Apply in 60 seconds: Decide whether your threat is โstolen laptopโ or โlost device,โ then pick resident/non-resident accordingly.
Resident vs non-resident: the one toggle that changes everything
Resident (discoverable) means you can later โpull downโ the public key + stub metadata from the YubiKey onto a fresh install and keep working without copying private keys. This is why resident keys feel like magic on a rebuilt Kali laptop.
Non-resident means the YubiKey holds the secret, but the client relies on local references to use it. Some tooling prefers this because it can fit into their sync model. In exchange, portability becomes a little less โplug-and-go.โ
Open loop: why โdiscoverableโ sounds saferโbut sometimes isnโt
โDiscoverableโ can sound like โeasier to steal.โ The nuance: discoverable doesnโt reveal the private key. It reveals that a credential exists and can be used with your physical key and (optionally) your PIN. The real security hinges on: (1) the physical device, (2) touch policy, and (3) whether the credential requires user verification (PIN). Weโll close this loop in the final section with a break-glass plan that doesnโt ruin your security posture.
Where verify-required fits: touch, PIN, and whatโs actually enforced
Touch is the โpresence check.โ PIN is the โuser verification gate.โ In practice, you want both for high-value access (bastions, prod, your GitHub org). If you only require touch, a stolen key can still be used by anyone who can touch it. If you require PIN + touch, you get a human-in-the-loop gate thatโs hard to phish and hard to automate at scale.
- You reinstall/rebuild Kali often.
- You work across multiple laptops.
- You want โplug key โ rehydrate โ go.โ
Trade-off: you must be serious about fallback access if you lose the device.
- Your tooling expects local key handles/stubs.
- You prefer explicit per-machine enrollment artifacts.
- Youโre optimizing for a specific client workflow.
Trade-off: portability is more manual; youโll manage local references carefully.
Neutral next action: Write down which problem hurts you moreโrebuild pain or device-loss anxietyโthen pick the side that solves it.

Who this is for / not for: donโt fight the wrong battle
This setup is ideal when your work has a lot of โkeys everywhereโ energy: multiple servers, multiple roles, frequent reimages, and a constant parade of jump boxes. Itโs also ideal when youโre trying to reduce the chance that a single compromised laptop becomes โSSH everywhere.โ If youโre also tuning the rest of your workflow (shell, prompts, and muscle-memory commands), pairing this with a clean Zsh setup for pentesters makes the day-to-day feel more consistent.
Best fit: Kali laptops, bastions, homelabs, and โI rebuild oftenโ workflows
A common scene: youโre on a train, tethering your laptop, trying to hop into a box to grab one log file. The last thing you want is to remember which private key you used for that environment. A YubiKey-based flow can compress that mental overhead into one reliable ritual: plug in, touch, PIN, done.
Not ideal: shared jump accounts, brittle legacy OpenSSH, or mixed-policy enterprises
If your organization uses shared SSH accounts or requires older OpenSSH servers you canโt upgrade, you may need PIV or OpenPGP-based SSH instead. Also, if you canโt guarantee a fallback access path (console access, second key, break-glass account), โhardware-onlyโ policies can become self-inflicted downtime.
Open loop: the surprising reason teams abandon this (and how to prevent it)
Teams rarely abandon security keys because theyโre insecure. They abandon them because the day-to-day UX feels unpredictable: wrong key selected, agent conflicts, PIN prompts that appear on one machine but not another. Weโll prevent that by (1) naming keys like you mean it, (2) keeping per-host config explicit, and (3) building a safe rollout sequence that doesnโt bet production on your first attempt.
- Yes โ You can keep at least one fallback access method during rollout (console, second key, or separate admin path).
- Yes โ Your servers run an OpenSSH version that supports security keys (or you control upgrades).
- Yes โ Youโre willing to require touch (and ideally PIN) for high-value logins.
- No โ Youโre depending on a single device with no backup plan.
Neutral next action: If any โNoโ is true, plan the fallback firstโthen do the key work.
Kali preflight: five compatibility checks
Before we generate anything, we make the future you grateful: verify the pieces that commonly โfail silently.โ In operator terms, this is where you save 20 minutes of confusion with 30 seconds of confirmation. If youโre in a VM-heavy lab setup, itโs also worth making sure your environment itself isnโt sabotaging youโespecially if an encrypted Kali VM is slow on VirtualBox and youโre mistaking lag for auth weirdness.
1) Confirm your OpenSSH client can do FIDO2 security keys
You want a modern OpenSSH client (Kali is usually fine here). Confirm with:
ssh -V
If youโre on something unusually old, update first. Security-key SSH is not a feature you want to duct-tape onto an antique client.
2) Confirm the YubiKey is seen and usable (not just โplugged inโ)
โPlugged inโ is not a state; itโs a hope. The OS must see the device, and the FIDO2 applet must be available. If you use the Yubico tooling, it can help you verify that the FIDO2 application is enabled and that a PIN exists.
3) Confirm PIN state (because this is where first attempts go to die)
If you havenโt set a FIDO2 PIN, do that before you get emotionally attached to your key command. A missing PIN can lead to โwhy am I not being prompted?โ confusion later, especially when you assume verification is required.
4) Confirm required libraries and support (Linux friction is real)
On Linux, missing dependencies can feel like the system ignoring you. If you generate a key and nothing prompts, this is often the reason. Donโt treat that as a mystery; treat it as a checklist item. And if your Kali environment is mid-upgrade, fix package friction firstโespecially if Kali packages have been kept back and youโre unknowingly running mismatched components.
5) Confirm you have a fallback path before you touch server settings
Weโre not disabling password logins yet. Weโre not changing SSHD hardening knobs yet. Weโre first proving one key login works end-to-end. If you plan to harden right after validation, keep a roadmap handyโthis pairs naturally with a dedicated Kali SSH hardening checklist once your FIDO2 path is proven.
Show me the nerdy details
Security-key SSH uses the FIDO2/U2F interface via OpenSSHโs โ-skโ key types. On Linux, userland libraries and agent behavior can affect prompts and device discovery. Preflight is about confirming: client support, device availability, and verification gating (PIN) before you blame SSH itself.

Keygen on Kali: ed25519-sk resident + touch/PIN without regret
This is where we generate the key in a way that scales: multiple roles, multiple hosts, and future-you not cursing present-you. The UX goal is consistent prompts and predictable identity selection.
The canonical flags (-O resident, -O verify-required) and what each buys you
At a high level:
ed25519-sktells OpenSSH you want a security-key-backed ed25519 key.-O residentstores a discoverable credential on the YubiKey (portability).-O verify-requiredpushes for PIN-based verification (stronger gate than touch alone).
Example (adjust filenames to your naming strategy):
ssh-keygen -t ed25519-sk -O resident -O verify-required -O application=ssh:bastion-ops -O user=ops -C "kali:bastion:ops" -f ~/.ssh/id_ed25519_sk_bastion
Naming strategy: comments + purpose strings so keys donโt blur together
If you keep multiple keys on one device (and you will, if you do serious work), names are not aestheticsโtheyโre operational safety. Use a naming pattern that answers three questions:
- Where? (bastion, prod, homelab, client)
- Who? (role or account class: ops, deploy, break-glass)
- When? (year or rotation tag, so you can retire cleanly)
Letโs be honestโฆ your first run fails if the PIN state is wrong (spot it fast)
If you donโt get a PIN prompt when you expect one, donโt keep re-running the command hoping it becomes more cooperative. Stop and verify the keyโs FIDO2 PIN is set, and confirm the option you used (verify-required) matches what youโre trying to enforce. Many โit doesnโt workโ stories are really โthe device wasnโt in the state you assumed.โ
- Label keys by role and destination, not by vibes.
- Require PIN for high-value logins; touch alone is weaker.
- Keep one test target before rolling to everything.
Apply in 60 seconds: Generate one โbastion testโ key with a clear comment and file name.
Server enrollment: authorized_keys that stays tight (and testable)
This part is where good setups become great setups: you enroll the public key carefully, verify permissions, and you test without gambling your access.
Install the public key without weakening .ssh permissions
Copy the public key to the server and append it to the correct accountโs ~/.ssh/authorized_keys. Then confirm the basics:
~/.sshis not world-writable.authorized_keysis owned by the correct user.- SELinux/AppArmor contexts (if present) arenโt blocking SSH reads.
Add guardrails: when verify-required belongs in authorized_keys
For server-side enforcement, prefix the security-key entry in authorized_keys with verify-required: verify-required sk-ssh-ed25519@openssh.com YOUR_PUBLIC_KEY_DATA comment. The data must come from your generated .pub file. Client key options are not a substitute for server policy. See sshdโs authorized_keys options; keep a proven fallback while testing.
Open loop: why it works locally but fails over SSH (the mismatch checklist)
When local signing works but remote auth fails, itโs almost always one of these:
- The server doesnโt support the security-key key type you enrolled.
- You enrolled the wrong public key (because names werenโt distinct).
- Your client offered a different identity first (agent/config order).
- The server is rejecting the key due to permissions or policy options.
- OpenSSH client version on Kali and OpenSSH server versions on targets.
- Inventory: which hosts are โmust accessโ vs โnice to access.โ
- Fallback method: console path, second key, or separate admin account.
- Key naming convention (comment + filename) youโll keep for 12 months.
Neutral next action: Write these four items down before you change any SSHD policy.
Portability: rehydrate resident keys on a fresh Kali install
This is the part that makes resident keys worth the effort: you can rebuild, reinstall, or migrate to a new machine without copying private keys around like contraband. The YubiKey stays the root of trust.
ssh-keygen -K: what it downloads (and what it doesnโt)
When you run the โdownload resident keysโ flow, you are not extracting private key material. Youโre pulling the public key and enough metadata to let the client reference the credential stored on the YubiKey. Think of it as restoring a pointer, not exporting a secret.
ssh-keygen -K
ssh-keygen -K writes recovered handle and public-key files into the current directory, not automatically into ~/.ssh. Use a new private directory, compare fingerprints with the enrolled key, then choose the recovered handle in IdentityFile. -C and -f are local labels; distinct -O application=ssh:... and -O user=... values distinguish resident credentials. See OpenSSHโs FIDO options.
Multiple resident keys: avoiding โwhich key did I just touch?โ
If you store more than one resident key, confusion can creep in. Avoid it with these habits:
- One key per role per destination class (bastion vs Git vs homelab).
- Clear comments that include destination and purpose.
- Per-host SSH config that selects the identity explicitly.
Hereโs what no one tells youโฆ portability is 80% naming + 20% config
People blame FIDO2 when the real culprit is ambiguity. If your keys look the same, your brain treats them the same. Then the wrong key gets offered, the server rejects it, and suddenly โsecurity keys are flaky.โ They arenโt. Vague identity management is flaky.
- Install/confirm OpenSSH client is current.
- Plug in YubiKey โ confirm PIN readiness.
- Run
ssh-keygen -Kto rehydrate resident key stubs. - Create per-host entries in
~/.ssh/configselecting the right identity. - Test against a non-critical server first.
SSH config ergonomics: make secure the default (no heroics)
If you want this to stick, it has to feel easy on Tuesdayโnot just impressive on day one. Your ~/.ssh/config is where you turn โstrong securityโ into โautomatic security.โ
Per-host identities: bastion vs Git vs homelab (clean separation)
Make the identity explicit. Donโt rely on whichever key the agent feels like offering. A simple per-host pattern keeps everything predictable:
Host bastion-prod
HostName bastion.example.com
User ops
IdentityFile ~/.ssh/id_ed25519_sk_bastion
IdentitiesOnly yes
Do the same for Git remotes and homelab. It reduces misfires and reduces the โwhy did it pick that key?โ spiral. If your lab spans multiple networks (NAT, Host-Only, Bridged) and youโre moving between test ranges, keeping your network layout predictable helps tooโespecially if youโre still deciding between VirtualBox NAT vs Host-Only vs Bridged for a pentesting lab.
Agent choices: when not using an agent is the smoother path
Agents can be great. They can also become a second operating system that you accidentally maintain. If your goal is โtouch + PIN for every login,โ you may prefer a minimal agent setup or even direct key use per host. If you do use an agent, be mindful of collisions with gpg-agent, desktop keyrings, and other ssh-agent instances.
Quick gut-checkโare you optimizing for speed or certainty?
Speed says: cache everything, prompt less, automate. Certainty says: ask for touch, ask for PIN, make identity selection explicit. For bastions and anything with secrets behind it, certainty is usually the better bargain.
Common mistakes: the lockout hall of fame (and how to dodge it)
If youโve ever locked yourself out of a server, you know the emotional arc: confidence โ one change too many โ โwhy is this asking me for a passwordโ โ bargaining โ console login. Letโs make that arc someone elseโs story.
Mistake #1: disabling password login before you prove a working key path
Do not make โpassword offโ your first milestone. Your first milestone is: one successful FIDO2 login end-to-end on a non-critical host. Only after that do you harden SSHD policy.
Mistake #2: wrong key selection (silent) โ fallback key gets used instead
This is sneaky: your SSH client may offer a different key first, and you think your YubiKey setup is โworkingโ when itโs actually using an older key. Then you rotate something, and it breaks. Use IdentitiesOnly yes and explicit IdentityFile per host to eliminate this.
Mistake #3: agent conflicts that look like โrefused operationโ
On Linux desktops, multiple agents can compete: system agents, desktop keyrings, gpg-agent, and purpose-built agents. The symptom is often cryptic. The fix is usually simple: run one agent that you understand, and set config explicitly.
Donโt do this: high-friction choices that quietly undo the whole point
- Disabling touch because โitโs annoying.โ (You just removed your best phishing-resistant gate.)
- Reusing one identity everywhere. (You increase correlation and blast radius.)
- Keeping the only fallback key on the same disk youโre trying to protect. (Thatโs security theatre with extra steps.)
| Mistake | Symptom youโll see | Fix that usually works |
|---|---|---|
| Disabled passwords too early | Lockout panic | Restore fallback access; test FIDO2 login first; then harden gradually |
| Wrong key being offered | It โworks,โ then suddenly doesnโt | Set IdentityFile + IdentitiesOnly yes per host |
| Agent conflict | โRefused operation,โ missing prompts | Run one agent; disable competing agents; simplify until prompts are consistent |
| No naming convention | โWhich key is this?โ confusion | Adopt a role+destination naming pattern; rehydrate and re-test with clarity |
Neutral next action: If you only do one thing from this section, make key selection explicit per host.
Troubleshoot fast: translate scary errors into one of four causes
Troubleshooting gets easier when you stop treating each error as unique. Most FIDO2 SSH failures fall into four buckets: client support, key selection, server support/policy, and agent/device access. Your job is to identify the bucket, not memorize every error string.
Bucket 1: client-side support (or missing pieces)
If you see โsecurity key not foundโ or you never get a prompt, suspect the client stack first: OpenSSH capability, device visibility, and required userland support. Confirm the basics, then retest.
Bucket 2: key selection (the silent saboteur)
If you have multiple keys, SSH may offer something else first. Youโll swear youโre using the YubiKey when you arenโt. Force the identity per host and temporarily disable extra identities to validate reality.
Bucket 3: server-side support and policy
Older servers, strict authorized_keys options, or file permission issues can reject a perfectly good key. Use server logs as a flashlight. They wonโt write poetry, but they will tell you what failed.
Bucket 4: agent/device access conflicts
If another agent is intercepting requestsโor if your desktop environment is doing โhelpfulโ thingsโprompts can disappear or operations can be refused. Simplify: one agent, one key, one host, then add complexity back in. (And yes, if your wider toolchain is already battling dependency driftโsay, the kind of โRuby version mismatchโ pain youโve seen elsewhereโyouโll appreciate how much calmer life is when each layer is explicit.)
- No prompt at all? Confirm device visibility and client capability first.
- Prompt appears but auth fails? Check server logs and
authorized_keyspermissions. - Works on one machine but not another? Rehydrate resident stubs (
ssh-keygen -K) and confirm identical host config. - Error mentions agent/refused operation? Reduce to one agent instance; retest with explicit
IdentityFile.
Show me the nerdy details
Most SSH authentication failures are not cryptographic failuresโtheyโre selection and policy failures. The client may offer multiple identities; the server may reject based on policy options, permissions, or unsupported key types; the agent layer can fail to reach the device. Debugging is faster when you isolate layers.
Alternatives map: when FIDO2 resident keys arenโt the best answer
FIDO2 security-key SSH is a strong default, but itโs not the only honest tool. Sometimes you need policy controls, sometimes you need compatibility, and sometimes you need a smoother โalways prompt the same wayโ experience. The goal is the same: hardware-backed authentication with predictable operations.
Native FIDO2 (ed25519-sk) vs a dedicated agent: UX vs ecosystem tradeoffs
An agent can affect identity selection and prompt behavior, but it is not a substitute for the authenticatorโs capabilities or the serverโs authorized-key policy. Verify a fresh public-key authentication with the intended identity and keep a working recovery path.
PIV / OpenPGP: when policy and recovery needs dominate
PIV and OpenPGP-based SSH can be the better fit in organizations that already run smartcard policies, certificate workflows, or key rotation processes. If your environment demands centralized control or existing compliance patterns, those approaches can be more alignedโeven if they feel heavier.
Open loop: the โone deviceโ riskโand how pros mitigate it
The fear is reasonable: โIf my key is the key, what happens when I lose it?โ The mitigation is also reasonable: multiple devices, staged enrollments, and a break-glass method thatโs isolated and monitored. Weโll lay out a practical break-glass plan in the final section without turning your setup into a fragile shrine.
| Option | Best for | Tradeoff | Ops burden |
|---|---|---|---|
FIDO2 native (ed25519-sk) |
Simple stack, phishing-resistant SSH | You must manage agent/config clarity | LowโMedium |
| Dedicated agent (YubiKey-focused) | Consistent prompts, smoother desktop behavior | Extra component; possible conflicts | Medium |
| PIV/OpenPGP | Smartcard policy, existing certificate workflows | Heavier setup; more moving parts | MediumโHigh |
| OTP/PAM add-ons | Legacy environments, incremental hardening | Not the same phishing-resistant story | Medium |

FAQ
Do I need a YubiKey 5 series, or will a Security Key by Yubico work?
For FIDO2-based SSH, you need a key that supports FIDO2. Many modern security keys do. If youโre also planning PIV or OpenPGP workflows, verify that your model supports those features before you standardize.
Whatโs the difference between ed25519 and ed25519-sk in OpenSSH?
ed25519 is a traditional file-backed private key. ed25519-sk is a security-key-backed key type: the signing operation happens on the hardware device, typically gated by touch and optionally a PIN.
What does โresident (discoverable)โ mean for SSHโwhere is the private key stored?
Resident means the credential is stored on the YubiKey in a discoverable form, so you can later rehydrate the client-side stub on a new machine. The private key material remains on the device; youโre restoring the ability to reference it, not exporting it.
Can I use the same resident key on multiple computers, including a fresh Kali reinstall?
Thatโs the main advantage of resident keys. With the device present, you can rehydrate the required stubs and continue using the same credential without copying private keys around like contraband.
Why do I sometimes get a touch prompt, sometimes a PIN prompt, sometimes both?
Touch is presence. PIN is user verification. Depending on how the credential was created and how verification is required, you may see touch-only or touch+PIN. For high-value systems, itโs reasonable to require both.
What happens if I lose the YubiKeyโam I permanently locked out?
You can be if you design it that way. Donโt. Use a break-glass plan: enroll a second hardware key ahead of time, keep console access, or maintain a separate tightly controlled admin path. The goal is โhard to steal,โ not โeasy to lock yourself out.โ
Will this work with older Ubuntu/Debian servers?
Compatibility depends on the serverโs OpenSSH version and policy configuration. If you control upgrades, plan to standardize versions across critical hosts. If you donโt, consider PIV/OpenPGP options that better fit legacy constraints.
Can I still use GitHub/Git over SSH with -sk keys?
Often yes, but details vary across clients and environments. The operator move is to create a dedicated key identity for Git workflows and test it independently from your bastion access.
Do I need an SSH agent at all for FIDO2 keys?
Not always. Agents can help manage identities and reduce repeated prompts, but they can also introduce conflicts. If youโre aiming for predictable touch/PIN behavior, keep the agent layer simple and explicit.
Next step: one concrete action (safe rollout) + closing the loop
Hereโs the promise you came for: no more โwhereโs my private key?โ Not because you became more disciplined, but because the system stopped asking you to be. With resident FIDO2 keys, your private key material doesnโt bounce between laptops, dotfiles, and cloud sync. It stays on the YubiKey. Your job becomes operational: clear naming, explicit host config, and a rollout sequence that respects downtime.
The 15-minute pilot that prevents the 2 a.m. lockout
- Create one test user on a non-critical server (or a disposable VM).
- Enroll your
ed25519-skresident key public key intoauthorized_keys. - Confirm you see the expected prompts (touch, and PIN if required).
- Confirm logs show a successful public-key auth event.
- Only then consider hardening steps like disabling password auth on real hosts.
ssh-keygen -K on a second machine or fresh profile.- Tier 1: FIDO2 key works on one test host (touch required).
- Tier 2: PIN required for high-value hosts (verification enforced).
- Tier 3: Per-host identities + explicit config (no silent key selection).
- Tier 4: Second device enrolled + break-glass path documented.
- Tier 5: Gradual SSHD hardening + monitoring/log review for key-based access.
Neutral next action: Pick your current tier and move up one rung this weekโno heroics required.
Closing the loop: โdiscoverableโ vs โsafeโ (the real answer)
Resident credentials are recoverable references, not exported signing secrets. Keep touch and verification policy explicit, check the expected host key, and retain a tested recovery path. Finish the pilot by comparing the key fingerprint, proving public-key-only login on a test host, and documenting what to revoke if the device is lost.
Hardware preflight: FIDO2 support alone does not guarantee ed25519-sk. Yubico documents firmware 5.2.3 or newer for that type and resident recovery; check the exact model and firmware. If Ed25519 is unsupported, verify the supported ecdsa-sk route. See Yubicoโs SSH guide. Test with explicit identity and PreferredAuthentications=publickey so password fallback does not masquerade as success. Prompt caching and connection multiplexing mean each new window is not necessarily fresh authentication.
Technical guidance updated: 2026-10-13. Clarified handle recovery and verification prerequisites, completed the truncated conclusion, and scoped the introductory styling to this article.
Hardware-key authentication review
Use these fields for your own task. Keep the actual conditions, evidence and unresolved questions beside the next decision.
Use the editable record below to retain the task context and unresolved questions.
Edit here, then select and copy the text to your own notes before leaving. This field has no submission or storage function; reloading resets it. Do not enter passwords, tokens or private client information. The 12,000-character limit applies to this working note.
Next action: Verify the actual authentication method before treating a login as hardware-key proof.
Related task: Use Kali SSH Hardening: Client, Server and Access Checks for that separate part of the workflow.
Worksheet change record โ October 20, 2026
Added four task-specific fields, a next action and a related guide. This is a blank editorial working aid, not a completed test or validated assessment. Existing source-review dates retain their own scope; this addition is not a new verification of every statement.
Hardware-key login: exclude connection reuse
Illustrative example โ not a performed lab test.
- Observation
- A login succeeds without a new authenticator interaction while an earlier SSH master connection is still open.
- Supported interpretation
- The successful session may have reused an authenticated connection.
- Still unresolved
- Whether a fresh connection used the intended hardware-backed public key, fallback authentication or another identity.
- Next authorized check
- Use a separately authorized fresh-connection check with the intended identity explicitly selected. Record the authentication method and any relevant fallback. Keep recovery access until both intended acceptance and required rejection cases are verified.
Practice-aid update: October 20, 2026. Added the illustrative decision case and editable note. No new VM execution or full-article revalidation is claimed.