Ubuntu系统下能否用安卓手机替代YubiKey作为SSH安全密钥?
用安卓手机替代YubiKey实现SSH登录弹窗确认(Ubuntu系统)
前提条件
- Ubuntu系统已安装OpenSSH 8.2及以上版本(FIDO2支持从该版本开始)
- 安卓手机安装支持FIDO2的应用,比如Google Authenticator(需更新到支持Passkey/FIDO2的版本)或YubiKey Authenticator
- 手机和Ubuntu设备已通过蓝牙配对,或处于同一局域网
操作步骤
1. 配置安卓手机的FIDO2密钥
- 打开手机上的FIDO2应用,添加新的安全密钥(部分应用标注为“Passkey”),选择“跨设备使用”模式
- 确保蓝牙连接正常(若用蓝牙),或手机与Ubuntu在同一WiFi环境下
2. 在Ubuntu生成绑定手机的SSH密钥
打开终端执行以下命令:
ssh-keygen -t ed25519-sk -O resident -O verify-required
参数说明:
-t ed25519-sk:指定采用FIDO2标准的ED25519算法密钥-O resident:将密钥存储在手机的FIDO2应用中,而非本地系统-O verify-required:强制每次使用密钥时触发手机的确认弹窗
执行命令后,终端会提示授权,此时手机会弹出允许/拒绝的确认框,点击允许即可完成密钥生成。
3. 上传公钥到目标SSH主机
生成的公钥默认路径为~/.ssh/id_ed25519-sk.pub,将其内容添加到目标主机的~/.ssh/authorized_keys文件中,或用以下命令快速上传:
ssh-copy-id -i ~/.ssh/id_ed25519-sk.pub 你的用户名@目标主机IP
4. 测试SSH登录
执行登录命令:
ssh 你的用户名@目标主机IP
此时安卓手机会立即弹出确认弹窗,点击允许后即可完成登录。
常见问题排查
- 手机无弹窗:检查蓝牙连接状态,或确保FIDO2应用在后台运行;也可尝试用USB线连接手机与Ubuntu,选择“文件传输”模式后重试
- OpenSSH版本过低:执行
sudo apt update && sudo apt install openssh-client升级到最新版本 - 密钥不生效:确认目标主机的
sshd_config中已开启PubkeyAuthentication yes,且AuthorizedKeysFile路径配置正确
内容的提问来源于stack exchange,提问作者Nihal Sanu
相关产品推荐
相关产品推荐

