SSH Key Deployment
SSH Key Types
| Key File | Type | Purpose |
|---|---|---|
|
YubiKey resident (sk) |
Primary personal domain key |
|
YubiKey resident (sk) |
Secondary/backup YubiKey |
|
Standard Ed25519 |
Fallback (non-hardware) |
|
YubiKey resident (sk) |
Work domain primary |
|
YubiKey resident (sk) |
Work domain backup |
Host Deployment Inventory
Infrastructure Hosts
| Host | IP | User | Keys Configured |
|---|---|---|---|
alienware |
10.50.10.138 |
evanusmodestus |
d000-yubikey, d000-secondary, d000 |
thinkpad-x1 |
10.50.10.155 |
evanusmodestus |
d000-yubikey, d000-secondary, d000 |
razer |
10.50.10.111 |
evanusmodestus |
d000-yubikey, d000-secondary, d000 |
nas-01 (synology) |
10.50.1.70 |
adminerosado |
d000-yubikey, d000-secondary, d000 |
pfsense |
10.50.1.1 |
admin |
d000-yubikey, d000-secondary, d000 |
certmgr-01 |
10.50.1.60 |
ansible |
d000-yubikey, d000-secondary, d000 |
ipsk-manager |
10.50.1.30 |
evanusmodestus |
d000-yubikey, d000-secondary, d000, certmgr-01-deploy |
kvm-host |
10.50.1.99 |
evanusmodestus |
d000-yubikey, d000-secondary, d000, certmgr-01-deploy |
Git Services
| Host | Key File | Purpose |
|---|---|---|
github.com |
id_ed25519_github |
GitHub SSH |
gitlab.com |
id_ed25519_gitlab |
GitLab SSH |
codeberg.org |
id_ed25519_codeberg |
Codeberg SSH |
bitbucket.org |
id_ed25519_bitbucket |
Bitbucket SSH |
gitea (10.50.1.70:2222) |
id_ed25519_gitea |
Self-hosted Gitea |
Ansible Deploy Key
The certificate manager (certmgr-01) uses a dedicated deploy key for automated deployments:
| Property | Value |
|---|---|
Key Location |
|
Public Key |
|
Fingerprint |
|
Deployed To |
nas-01, gitea-01, kvm-01, pfsense-01, ipsk-mgr-01 |
Adding Keys to a New Host
Step 1: Copy Public Keys
# Display keys to copy
cat ~/.ssh/id_ed25519_sk_rk_d000.pub
cat ~/.ssh/id_ed25519_sk_rk_d000_secondary.pub
cat ~/.ssh/id_ed25519_d000.pub
Step 2: Add to Remote Host
# On the remote host
mkdir -p ~/.ssh && chmod 700 ~/.ssh
# Add public keys to authorized_keys
cat >> ~/.ssh/authorized_keys << 'EOF'
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIFHfsGSAFAkqwYj6EGS9sA2MROjs28zM6LJds3gagsCkAAAACHNzaDpkMDAw evanusmodestus@d000-yubikey
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEBZ+kus4aTHzQt1zNnEnGxJs+Lf56vrCdcyvqLhpp9hAAAACHNzaDpkMDAw evanusmodestus@d000-secondary
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL3vaIABqHOwy88p/5GcX3ZNU044GAz/3T5dH8GIU7DS evanusmodestus@d000
EOF
chmod 600 ~/.ssh/authorized_keys
SSH Config Entry Template
Add new hosts to ~/.ssh/config:
Host newhost
HostName 10.50.x.x
User username
IdentityFile ~/.ssh/id_ed25519_sk_rk_d000
IdentityFile ~/.ssh/id_ed25519_sk_rk_d000_secondary
IdentityFile ~/.ssh/id_ed25519_d000
PasswordAuthentication yes
PreferredAuthentications publickey,password
Verification Commands
# List all configured hosts
grep -E "^Host " ~/.ssh/config | grep -v "*"
# Test connection to host
ssh -v hostname "echo OK"
# Check which key was used
ssh -v hostname 2>&1 | grep "Offering public key"
# View key fingerprints
ssh-keygen -lf ~/.ssh/id_ed25519_sk_rk_d000.pub