当我尝试在我的 Debian 实例上创建 ssh 密钥时:
ssh-keygen -f /home/serverkeys/.ssh/id_rsa
我收到错误:保存密钥“/home/serverkeys/.ssh/id_rsa”失败:没有此文件或目录
我正在使用 root 用户,当我检查目录的权限时:
ls -ld
我明白了
drwxr-xr-x 2 root root 4096 Oct 17 08:32 .
我有几个问题:
1)我遗漏了什么,为什么系统不能自动创建指定的.ssh 目录?
2)我是否需要创建另一个用户并从使用 root 切换。我不确定新用户是否会继承我目前拥有的所有软件包的权限,因为我已经使用 root 用户配置文件安装了它们?
我打算使用 ssh 密钥来集成 Jenkins 和 Gitlab,具体方法如下Jenkins_Gitlab集成
然而,在示例中,Jenkins 实例和 Gitlab 实例安装在 d不同的服务器但对于我的设置,它们安装在相同的 Debian 实例而且我的 Gitlab 仓库是民众。
我不确定是否仍然需要 ssh 密钥,因为 Jenkins 和 Gitlab 在同一个 Debian 实例上运行,例如,Jenkins 是否仍然需要 ssh 密钥才能从 Gitlab 检出代码。
答案1
我尝试使用以下命令创建一个新证书:
ssh-keygen -t ed25519 -f ~/keys/server_name/id_rsa -q -N ""
(没有 -y 或 -c 标志)
注意:-y 标志不是确认
答案2
此-f key_file
开关本身不会创建新密钥,也不会创建目录.ssh
。与其他开关一起使用时,-f 开关还用于将现有 key_file 作为输入。请参阅man ssh-keygen
您需要使用-c
选项和 ssh-keygen
-c
-f /home/serverkeys/.ssh/id_rsa
创建一个新的私钥。