AWS EC2 Ubuntu实例误删~/.ssh,持开放会话及备份密钥如何恢复?
恢复EC2 Ubuntu实例的~/.ssh目录内容(当前会话仍开放)
当然可以恢复!既然你当前的SSH会话还处于活跃状态,这就好办多了——我们直接在实例上重建~/.ssh目录和必要的文件就行,核心是要把权限设置正确(这大概率是你之前复制公钥后连不上的原因,SSH对这些文件/目录的权限要求非常严格)。
按以下步骤操作:
第一步:重建~/.ssh目录并设置正确权限
在当前开放的会话中运行以下命令:mkdir -p ~/.ssh chmod 700 ~/.ssh权限
700意味着只有你(当前用户)拥有读、写、执行该目录的权限,其他用户完全无法访问,这是SSH要求的最低权限标准。第二步:创建authorized_keys文件并设置权限
这个文件用于存储允许登录的公钥,同样要严格设置权限:touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys权限
600确保只有你能读写这个文件,避免其他用户篡改或读取公钥内容。第三步:将本地公钥写入authorized_keys
你有两种方式完成这一步:- 直接复制粘贴:打开本地的公钥文件(通常是
.pub后缀,比如your-key.pub),复制里面的全部内容,然后在实例会话中用编辑器打开文件:
粘贴内容后,按nano ~/.ssh/authorized_keysCtrl+O保存,Ctrl+X退出编辑器。 - 如果找不到本地公钥文件,也可以从你的
.pem密钥生成公钥:在本地电脑的终端(Windows用PowerShell或Git Bash)运行:
然后复制生成的ssh-keygen -y -f your-key.pem > your-key.pubyour-key.pub里的内容,再按上面的方法粘贴到实例的authorized_keys中。
- 直接复制粘贴:打开本地的公钥文件(通常是
第四步:验证权限(关键!)
运行以下命令确认权限是否符合要求:ls -ld ~/.ssh ls -l ~/.ssh/authorized_keys输出应该分别显示:
drwx------对应~/.ssh目录-rw-------对应authorized_keys文件
如果权限不对,重新运行前面的chmod命令修正。
第五步:测试PuTTY连接
注意PuTTY无法直接使用.pem密钥,你需要先把它转换成PuTTY支持的.ppk格式:- 打开PuTTYgen工具
- 点击「Load」,选择你的
.pem文件(注意要选择「All Files」才能看到.pem) - 点击「Save private key」(可以忽略密码提示),保存为
.ppk文件 - 在PuTTY的「Connection > SSH > Auth」选项中,加载这个
.ppk文件,然后尝试连接实例。
这样操作后,你应该就能正常通过PuTTY建立新会话了。
内容的提问来源于stack exchange,提问作者OtagoHarbour
相关产品推荐
相关产品推荐

