我目前必须使用用户 FOO 进行 ssh,然后使用 sudo 操作到用户 BAR。
我想使用公钥进行 ssh,但在远程系统上没有用户 FOO 的主目录,因此显然没有 .ssh/authorized_keys。我可以把我的公钥放在哪里?
/home 目录是空的,因此似乎没有为任何用户创建主目录,并且我在该系统上没有 root 权限。
谢谢。
答案1
假设您的用户名是testssh
:
- 创建
/etc/ssh/authorized_keys_testssh
并把你的密钥放在那里 - 添加以下内容
/etc/ssh/sshd_config
:
Match User testssh
AuthorizedKeysFile /etc/ssh/authorized_keys_%u
并重新启动 sshd。您的用户将能够使用他的私钥进行 ssh。
答案2
简答
您可能无法 - 请与您的系统管理员联系。
更长的答案
首先,/home
目录为空(即使它不存在)这一事实并不一定意味着您的用户没有主目录。您可以尝试查看环境变量的值HOME
:
$ echo $HOME
/path/to/nonstandard/homedirectory
或使用getent
命令:
$ getent passwd username
username:*:1001:1001:User Name:/path/to/nonstandard/homedirectory:/bin/bash
如果事实证明您的用户确实没有主目录,那么如果您的服务器管理员为您的authorized_keys
文件设置了非标准位置,那么仍然可以使用公钥。
假设你正在使用开放SSH,文件的位置authorized_keys
可以通过配置文件AuthorizedKeysFile
中的关键字来指定sshd_config
。请参阅文档以获取更多信息:
默认值为~/.ssh/authorized_keys
。您必须查看设置/etc/ssh/sshd_config
以查看默认值是否被覆盖。由于您没有 root 访问权限,如果您想进行任何更改,您可能必须向系统管理员寻求帮助。
如果事实证明您没有主目录,系统管理员没有为您的authorized_keys
文件配置不同的位置,并且您没有计算机的管理权限,那么您可能无法使用基于密钥的身份验证 - 与您的系统管理员联系。