You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS .pem文件本地存储位置及EC2免密SSH缓存文件路径查询

关于AWS .pem文件的存储位置

首先,你最初下载的.pem文件位置完全取决于你下载时的选择——默认情况下,浏览器会把它存到系统的默认下载目录:

  • Windows:C:\Users\[你的用户名]\Downloads
  • macOS/Linux:~/Downloads

不过通常大家会把.pem文件移动到更安全且SSH能自动识别的目录,比如~/.ssh/(Linux/macOS)或者C:\Users\[你的用户名]\.ssh\(Windows),因为SSH客户端默认会扫描这个目录寻找密钥文件,方便后续使用。


无需指定.pem就能SSH登录EC2的原因及相关存储/缓存说明

你猜的“缓存”其实不完全是磁盘上的文件,主要有这几种情况:

  1. SSH代理(ssh-agent)已加载密钥
    如果你之前用过ssh-add ~/path/to/your/key.pem命令把密钥添加到ssh-agent,那么这个密钥会被临时存在内存缓存里(不会写到磁盘文件),SSH客户端在连接时会自动从agent获取密钥,所以不需要每次指定-i参数。

    • 重启系统后,ssh-agent的内存缓存会清空,除非你配置了自动加载(比如macOS可以把密钥存入钥匙串,Linux可以在.bashrc/.zshrc里添加自动加载命令)。
  2. 配置了SSH config文件
    如果你在~/.ssh/config(Linux/macOS)或者C:\Users\[你的用户名]\.ssh\config(Windows)里添加了类似下面的配置,SSH会自动匹配对应的Host并使用指定的密钥:

    Host my-ec2-instance
        HostName [EC2实例的公网IP/域名]
        User ec2-user(或者ubuntu,取决于实例的AMI)
        IdentityFile ~/.ssh/your-key.pem
    

    这种情况下,你只需要输入ssh my-ec2-instance就能登录,不需要手动指定密钥文件,这个config文件是存在磁盘上的,不是缓存。

  3. EC2实例已添加你的公钥到authorized_keys
    还有一种可能是,你第一次登录后,把.pem对应的公钥(可以用ssh-keygen -y -f your-key.pem导出)添加到了EC2实例上~/.ssh/authorized_keys文件里,之后即使不用这个.pem,只要你本地的SSH客户端有对应的私钥(不管是在.ssh目录还是agent里),就能自动登录。


内容的提问来源于stack exchange,提问作者Ian Sharp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:15:34