谷姐:我们都是谷歌迷
We are all Google fans

不要裸奔!利用USB密钥YubiKey认证服务器登陆

5/5 - (2 votes)

服务器上有着重要数据,同时服务器带公网IP,全天24小时暴露在公网上,随时可能被黑客盯上,所以服务器的安全至关重要。

一、SSH登陆认证

Linux服务器通过SSH可以进行远程登陆,登陆的时候认证方式一般采用的是密码认证,其实这个十分不安全。建议采取SSH密钥对方式认证,或者使用下面将尝试的USB安全密钥认证。

二、启用USB密钥YubiKey登陆认证

YubiKey

Yubico公司开发的一款非常棒的USB密钥。亚马逊或者咸鱼上可以购买。
YobiKey 第四代

服务器设置

相比SSH密钥对认证方式,USB安全密钥要配置的东西多些。
1. 安装依赖

sudo apt-get update
sudo apt-get install libpam-yubico

2. 修改passwd文件

echo "root:YubiKey token ID" >> /etc/passwd

将Yubikey token ID替换掉。token ID是12位字符串,可以用带NFC功能的手机读取YubiKey信息,取#符号后的字符(44位)的前12位。
用NFC读取YubiKey token ID
3. 创建Mapping文件

echo "root:YubiKey token ID" >> /var/yubico_passwd

4. 设置PAM,调用Mapping文件
编辑文件/etc/pam.d/sshd,新增

auth required pam_yubico.so id=CLIENT_ID debug authfile=/var/yubico_passwd

将CLIENT_ID替换掉。在Yubico官网申请API,获取CLIENT_ID: https://upgrade.yubico.com/getapikey
5. 修改sshd_config文件 /etc/ssh/sshd_config

PubkeyAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication yes
PasswordAuthentication no
UsePAM yes

6. 重启SSH服务
确保当前网络连接稳定,且重启后不要关闭当前会话,可以打开别的连接并尝试能否用USB密钥完成认证。确保能完成认证后,才可决定是否关闭当前会话。

sudo service ssh restart

三、SSH客户端尝试登陆

博主使用的是Termius客户端。客户端不用设置什么,直接连接,弹出认证窗口,插入USB并触摸USB上触点,利用USB密钥进行认证登陆
Termius利用YubiKey认证

四、一些参考

1. Yubico PAM module https://developers.yubico.com/yubico-pam/
2. YubiKey Support https://docs.termius.com/termius-handbook/yubikey-support

未经谷姐允许不得转载:谷姐靓号网 » 不要裸奔!利用USB密钥YubiKey认证服务器登陆
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活