我一直在努力清理我的根目录,使其不与随机点文件. 尽管如此,在建立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
,您可以编辑以下设置:
- /etc/ssh/ssh_config:编辑 的值
IdentityFile
。示例条目如下所示:IdentityFile /es2/ssh/id_rsa
。这/es2/ssh
是保存公钥和私钥所需的目录。- /etc/ssh/sshd_config:更新的值
AuthorizedKeysFile
,示例条目如下:AuthorizedKeysFile /es2/ssh/authorized_keys
另外,完成此配置更新后,请不要忘记重新启动 ssh 守护程序。
参考 : sshd_配置(5)。