Bitwarden as SSH agent

Bitwarden as SSH agent

SSH 密码登录由于安全/便利问题现在几乎不会推荐使用,使用密钥登录应该已经是基本操作。但是如何管理不同设备不同私钥是个大的问题,我之前的实践是同一份私钥复制到有登录需求的各个设备(几乎等于所有设备),毕竟为每台设备生成独立的密钥大幅提高了管理的难度。

今天偶然看到(RSS订阅突然多出了600+未读) [[Xuanwo]] 的文章: 2023-21: 我的 1Password 密钥管理实践,决定在安全方面优化一下 SSH 密钥管理体系。我日常使用 Bitwarden,搜索发现也支持了 SSH agent 功能1 。下面依次介绍不同平台的使用。

Windows 11 WSL2 中如何使用 #

参考文章 https://www.rebelpeon.com/bitwarden-ssh-agent-on-wsl2/

# host, you should install chocolate first
choco install npiperelay

# wsl2
sudo apt install socat

~/scripts/agent-bridge.sh, add source <path> to your shell rc.

export SSH_AUTH_SOCK=$HOME/.ssh/agent.sock
ss -a | grep -q $SSH_AUTH_SOCK
if [ $? -ne 0   ]; then
    rm -f $SSH_AUTH_SOCK
    ( setsid socat UNIX-LISTEN:$SSH_AUTH_SOCK,fork EXEC:"/mnt/c/ProgramData/chocolatey/lib/npiperelay/tools/npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork & ) >/dev/null 2>&1
fi

Then you can use ssh-add -l to test.

macOS 如何使用 #

export SSH_AUTH_SOCK=/Users/<user>/.bitwarden-ssh-agent.sock

linux 下如何使用 #

export SSH_AUTH_SOCK=/home/<user>/.bitwarden-ssh-agent.sock

One more thing: git commit sign #

阅读 Bitwarden 文档的时候发现GitHub2022年3月开始支持使用 SSH 密钥对 Git commit 进行签名和验证。以前刚推出这个功能的时候尝试了 GPG sign,因为过于麻烦放弃。既然现在支持 SSH 密钥了,顺便一起尝试一下,具体方法参考1 ,注意这里有个小坑,配置 .gitconfig时不能使用 ssh key name,需要写出公钥的具体内容。配置完成后在 commit 时也会提醒认证。

后续可以探索使用 [[Yubikey]] SSH 登录。

参考 #