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

Ubuntu 20.04环境下无法将SSH密钥永久添加至~/.ssh目录的问题咨询

嘿,我来帮你解决这个SSH密钥没法永久添加的问题——Ubuntu 20.04上这个情况我碰到过好几次,咱们一步步来搞定它:

方法1:让ssh-agent自动启动并加载密钥

Ubuntu 20.04默认的ssh-agent管理有时候不会自动持久化,咱们可以手动配置shell的启动脚本,让它每次打开终端都自动处理:

  • 打开你的shell配置文件,如果用bash就编辑~/.bashrc,用zsh的话就编辑~/.zshrc,添加这段代码:
# 自动启动ssh-agent并加载密钥
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
    ssh-agent > "$HOME/.ssh-agent-info"
fi
if [[ ! "$SSH_AUTH_SOCK" ]]; then
    source "$HOME/.ssh-agent-info" > /dev/null
fi
# 自动加载你的私钥(把下面的id_rsa换成你实际的私钥文件名)
ssh-add -l > /dev/null || ssh-add ~/.ssh/id_rsa

这段脚本会先检查ssh-agent是否在运行,没运行就启动并保存它的环境变量;接着加载这些变量确保当前shell能用上agent;最后检查密钥有没有被添加,没加的话自动加载。

  • 保存文件后,执行source ~/.bashrc(对应你的rc文件)让配置立即生效,之后新开终端就不用再手动折腾agent了。

方法2:直接用SSH配置指定密钥(更省心)

如果不想依赖ssh-agent,还可以直接在SSH配置里固定连接Vector时用的密钥,这样连agent都不用管:

  • 先创建/编辑~/.ssh/config文件,记得把权限设为chmod 600 ~/.ssh/config(权限不对会被SSH拒绝),添加以下内容:
Host vector
    HostName 你的Vector机器人IP地址
    User 你的Vector用户名(比如root)
    IdentityFile ~/.ssh/你的私钥文件名

把上面的占位内容换成你实际的信息,之后你只需要敲ssh vector就能直接连接Vector,完全不用手动处理密钥。

方法3:再确认一遍权限(别忽略!)

你说已经设置了chmod,但还是再检查一遍——权限不对是SSH密钥加载失败的常见原因:

  • 私钥文件权限必须是chmod 600 ~/.ssh/你的私钥
  • ~/.ssh目录权限必须是chmod 700 ~/.ssh
  • 公钥文件权限可以设为chmod 644 ~/.ssh/你的公钥.pub

为啥ssh-add -K没用?

顺便说一句,Ubuntu 20.04里的ssh-add已经移除了-K参数,这个参数是macOS用来把密钥存到系统钥匙串的,Linux系统根本不支持,所以你才会看到那个连接agent的错误。

现在你可以试试上面的方法,新开一个终端直接连接Vector,应该不用再重复启动agent和添加密钥了!

内容的提问来源于stack exchange,提问作者Rob Readling

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 16:52:49