- ssh 默认的密钥保存目录,第三方程序其实是可以随意读写的,甚至比 chrome 默认密码还方便
- 之前用的不多,主要是本地机器,但是随着本地应用越装越多,远程开发的需求也变得跟本地一样好用,密钥登陆的使用频次也变多了
- 在不指定配置时常用的就一组密钥对,所以如果被第三方应用被偷了(假想敌 x),就全灭了 233,为防万一,故有了这篇,略微增强下密钥的安全性
linux 通用步骤
步骤
ssh-keygen
生成密钥,并设置passphrase
(重要),提升安全性的第一步ssh-keygen -t ed25519 -C "your_email@example.com"
或
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"- 启动
ssh-agent
;这步非必须,部分发行版默认开机启动了,可以用ps aux | grep ssh-agent
看一下eval "$(ssh-agent -s)"
Agent pid 59566 - 将 ssh 私钥添加到
ssh-agent
ssh-add ~/.ssh/id_ed25519
或
ssh-add ~/.ssh/id_rsa - 修改 ssh 配置文件
Host *
AddKeysToAgent yes
效果
- 实际效果相当于,每次系统重启,只需要输入一次
passphrase
,就不再需要每次输入passphrase
mac 步骤
步骤
不使用 keychain 的话步骤和 linux 一样
- 将 SSH 私钥添加到 ssh-agent 并将密码存储在密钥链中
ssh-add --apple-use-keychain ~/.ssh/id_rsa
- 修改 ssh 配置文件
Host *
UseKeychain yes
AddKeysToAgent yes
效果
- 除了第一次使用密钥,后续不管重启还是什么的,都可以不需要再输入
passphrase
- 牺牲一点安全性,提高了便利性 233
win 步骤待定
- 一般我都是虚拟机 linux 里面走 ssh 的
- 在目前工作流中,不包括频繁的 win ssh 其他机器的场景
- 有需求可以参考
参考链接
- https://macowners.club/posts/ssh-key-macos-keychain/
- https://xuling.me/2024/05/24/git-sshkey/index.html
- https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
- https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/connecting-to-remote-machines-with-ssh-keys-using-ssh-agent_assembly_using-secure-communications-between-two-systems-with-openssh