mac-ssh-askpass 使用教程
项目介绍
mac-ssh-askpass
是一个为 macOS 设计的图形化密码输入对话框,用于 OpenSSH。它可以存储私钥的密码短语在钥匙串中,旨在被 OpenSSH 客户端程序调用,而不是直接调用。此外,它还可以在将私钥添加到 ssh-agent 时用作确认对话框(推荐使用 ssh-add -c
)。该项目灵感来源于 ksshaskpass
,并应与其行为类似。
项目快速启动
安装
-
克隆项目仓库:
git clone https://github.com/markhalliwell/mac-ssh-askpass.git cd mac-ssh-askpass
-
构建项目:
xcodebuild
-
将生成的应用移动到应用程序目录:
mv build/Release/ssh-askpass.app /Applications/
-
创建符号链接:
ln -s /Applications/ssh-askpass.app/Contents/Resources/at.zronek.lukas.ssh-askpass.plist ~/Library/LaunchAgents/
-
加载 Launch Agent:
launchctl load -w ~/Library/LaunchAgents/at.zronek.lukas.ssh-askpass.plist
-
重启终端应用。
配置
在 macOS < 12 (Monterey) 或 OpenSSH < 8.4 中,添加以下行到你的 shell 启动文件(~/.bash_profile
或 ~/.zprofile
):
ssh-add() { command ssh-add $@ </dev/null }
禁用钥匙串
默认情况下,“在我的钥匙串中记住密码短语”是启用的。你可以通过以下命令禁用钥匙串:
defaults write at.zronek.lukas.ssh-askpass useKeychain -bool false
应用案例和最佳实践
案例1:自动加载私钥
在日常工作中,你可能希望在启动时自动加载私钥。通过配置 ssh-askpass
,你可以实现这一点。以下是一个示例:
- 确保
ssh-askpass
已安装并配置。 - 在你的 shell 启动文件中添加以下内容:
if [ -z "$SSH_AUTH_SOCK" ]; then eval $(ssh-agent -s) ssh-add -c </dev/null fi
最佳实践
- 安全考虑:始终使用
ssh-add -c
来添加私钥,以确保密码短语通过ssh-askpass
输入。 - 钥匙串管理:定期检查和管理钥匙串中的项目,确保安全性。
典型生态项目
1. OpenSSH
mac-ssh-askpass
主要用于 OpenSSH 客户端程序,提供图形化密码输入对话框。
2. Keychain Access
macOS 的钥匙串访问应用,用于管理密码、私钥等敏感信息。ssh-askpass
可以与钥匙串访问应用集成,提供更安全的密码管理。
3. Terminal
macOS 的终端应用,用于执行命令行操作。ssh-askpass
可以与终端应用集成,提供更友好的密码输入体验。
通过以上步骤和配置,你可以充分利用 mac-ssh-askpass
提供的功能,提升 macOS 上 OpenSSH 的使用体验和安全性。