我的服务器有问题,出于某种原因(这里不重要)我无法使用我的默认主文件夹(/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
我已经更改了AuthorizedKeysFile
sshd_config 文件中的选项,我可以使用密钥登录,但问题仍然存在。我如何告诉 ssh 新的默认主文件夹是/newhome/$USER/.ssh
?
答案1
您必须在所需目录中生成 ssh 公钥/私钥,而不是在默认目录中
/home/$USER/.ssh
。请在执行ssh-keygen -t rsa
命令时提供所需路径。如果您注意到,密钥已在默认路径而不是中生成/newhome/$USER/.ssh
。此外,新路径不需要包含.ssh
隐藏目录。您可以自由创建任何您喜欢的目录结构。只需确保新目录具有700
权限。IdentityFile
编辑中的属性/etc/ssh/ssh_config
以指向新的id_rsa
。编辑属性
AuthorizedKeysFile
以/etc/ssh/sshd_config
指向所需的路径。重新启动 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 密钥密码时通过图形弹出窗口提示您输入。
如果您只是使用IdentityFile
Host 配置下的字段指向~/.ssh/config
不同的目录,那么gnome-keyring-ssh
似乎很难找到您的 SSH 密钥,并且每次使用密钥时您都必须在终端中输入密码。我还没弄明白为什么,但我认为它gnome-keyring-ssh
只是内置的,以便仅正确查看 的内容~/.ssh
。
如果有人知道如何配置gnome-keyring-ssh
以查看除此之外的任何其他文件夹~/.ssh
,请告诉我。