我已设置基于 SSH 密钥的身份验证,以便从我的 Macbook Air 连接到远程服务器。私钥最初存储在 ~/.ssh/id_rsa 中,但我已将该文件移至安全的外部硬盘。我还从 ~/.ssh 目录中删除了该文件(理论上,如果没有该外部硬盘上的私钥,任何人都无法连接)。
但是,当我尝试通过 ssh 连接到远程主机时(ssh[电子邮件保护]),它顺利地连接(无需插入带有密钥文件的外部设备)。提示符下确实显示“上次登录时间”,那么我的 Mac 是否在某处缓存了密钥文件?
答案1
是的。首次使用 ssh-agent 时,密钥会被加载到其中(如果存在密码,则会显示一个对话框)。如果您注销,代理将停止。
答案2
每https://help.github.com/articles/working-with-ssh-key-passphrases/#platform-mac看来 Mac OSX 将密钥缓存在自己的钥匙串中。这反过来又成为 ssh-agent 的备用数据源。