如何将 ssh-key 相关文件移动到另一个目录?

如何将 ssh-key 相关文件移动到另一个目录?

我一直在努力清理我的目录,使其不与随机点文件. 尽管如此,在建立ssh 密钥我走进了死胡同,找不到移民的路已知主机文件到另一个方向($XDG_CONFIG_HOME/ssh/)。

我使用这个命令来生成我的 ssh-key:

mkdir -p $XDG_CONFIG_HOME/ssh
ssh-keygen -t ed25519 -C "[email protected]" -f $XDG_CONFIG_HOME/ssh/id_ed25519

但是我需要创建一个~/.ssh/config文件来指向我的$XDG_CONFIG_HOME/ssh/config文件,这很令人沮丧,因为我想摆脱~/.ssh目录

我使用了几种方法,其中之一是设置环境变量SSH_CONFIG$XDG_CONFIG_HOME/ssh/config但这也不起作用

⚠️ 我正在使用苹果系统鱼壳避免混淆

这是$XDG_CONFIG_HOME/ssh/目录结构:

config
id_ed25519
id_ed25519.pub
known_hosts #this file is ignored as ssh expects its in ~/.ssh/

这是$XDG_CONFIG_HOME/ssh/config文件:

GlobalKnownHostsFile $XDG_CONFIG_HOME/ssh/known_hosts #this doesn't help either 
Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile $XDG_CONFIG_HOME/ssh/id_ed25519

当前有效的修复程序仅创建了一个.ssh/config值为 的程序UserKnownHostsFile $XDG_CONFIG_HOME/ssh/known_hosts,这使得我的整个文件迁移变得毫无意义。

.ssh/config文件:

UserKnownHostsFile $XDG_CONFIG_HOME/ssh/known_hosts

我是不是遗漏了什么?

我怎样才能解决这个问题?

或者有没有更好的方法来组织一个人的根文件夹?

我尝试设置环境变量SSH_CONFIG但它似乎忽略了它:

set -Ux SSH_CONFIG ~/.config/ssh/config #fish syntax, it's the same as: export SSH_CONFIG="$HOME/.config/ssh/config"

答案1

帖子 如何更改 .ssh 文件夹的默认位置 有这个 Binita Bharati 的回答

要更改目录的默认位置.ssh,您可以编辑以下设置:

  1. /etc/ssh/ssh_config:编辑 的值IdentityFile。示例条目如下所示:IdentityFile /es2/ssh/id_rsa。这 /es2/ssh是保存公钥和私钥所需的目录。
  2. /etc/ssh/sshd_config:更新的值AuthorizedKeysFile,示例条目如下:AuthorizedKeysFile /es2/ssh/authorized_keys

另外,完成此配置更新后,请不要忘记重新启动 ssh 守护程序。

参考 : sshd_配置(5)

相关内容