更改整个 .ssh 文件夹的默认路径

更改整个 .ssh 文件夹的默认路径

我的服务器有问题,出于某种原因(这里不重要)我无法使用我的默认主文件夹(/home/$USER)。目前我正在设置$HOME每次登录时,这样当我登录时cd ~路径就会更改为/newhome/$USER

除了 ssh 之外,一切似乎都正常工作。问题是 ssh 一直在搜索/home/$USER/.ssh公钥/私钥和 known_host 文件夹,而不是使用/newhome/$USER/.ssh

> ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/$USER/.ssh/id_rsa): 
Could not create directory '/home/$USER/.ssh': No such file or directory

我已经更改了AuthorizedKeysFilesshd_config 文件中的选项,我可以使用密钥登录,但问题仍然存在。我如何告诉 ssh 新的默认主文件夹是/newhome/$USER/.ssh

答案1

  1. 您必须在所需目录中生成 ssh 公钥/私钥,而不是在默认目录中/home/$USER/.ssh。请在执行ssh-keygen -t rsa命令时提供所需路径。如果您注意到,密钥已在默认路径而不是中生成/newhome/$USER/.ssh。此外,新路径不需要包含.ssh隐藏目录。您可以自由创建任何您喜欢的目录结构。只需确保新目录具有700权限。

  2. IdentityFile编辑中的属性/etc/ssh/ssh_config以指向新的id_rsa

  3. 编辑属性AuthorizedKeysFile/etc/ssh/sshd_config指向所需的路径。

  4. 重新启动 ssh 守护进程。在我的 CentOS m/c 上,我按如下方式操作:sudo systemctl restart sshd.service

答案2

这可能不是您想要的,但您可以将整个~/.ssh目录的内容移动到其他目录,然后删除~/.ssh并创建指向新目录的符号链接~/.ssh

mkdir ~/alternative
mv ~/.ssh/* ~/alternative
rm -rf ~/.ssh
ln -s ~/alternative ~/.ssh

这与gnome-keyring-ssh服务很好地集成在一起,服务充当包装器ssh-agent并在您登录后第一次使用 SSH 密钥密码时通过图形弹出窗口提示您输入。

如果您只是使用IdentityFileHost 配置下的字段指向~/.ssh/config不同的目录,那么gnome-keyring-ssh似乎很难找到您的 SSH 密钥,并且每次使用密钥时您都必须在终端中输入密码。我还没弄明白为什么,但我认为它gnome-keyring-ssh只是内置的,以便仅正确查看 的内容~/.ssh

如果有人知道如何配置gnome-keyring-ssh以查看除此之外的任何其他文件夹~/.ssh,请告诉我。

相关内容