hel*_*ode 4 chroot ssh openssh key-authentication
我们使用 OpenSSH_5.3p1 运行 CentOS 6.9,并为具有相同主目录(挂载到 htdocs)的外部用户创建了 chroot 帐户。问题是文件.ssh/authorized_keys2
归第一个用户所有(这已经有效)。我怎样才能让它为另一个用户工作?
我尝试AuthorizedKeysFile
在 sshd_config 中添加一个具有多个文件路径的文件,但出现错误garbage at end of line
。
我试图在第二个用户的匹配块中添加一个AuthorizedKeysFile
输入sshd_config
,但出现错误'AuthorizedKeysFile' is not allowed within a Match block
。
我无法更改主目录,否则路径与开发的真实路径不同。
任何建议如何解决它?我是否必须将 OpenSSH 升级到支持多个条目的较新版本AuthorizedKeysFile
(我想我必须用 rpm 构建它)?之后的安全更新呢?
Cen*_*ane 13
一种选择是使用令牌给每个用户一个独特的 authorized_keys
文件。
AuthorizedKeysFile
指定包含可用于用户身份验证的公钥的文件。格式在 的 AUTHORIZED_KEYS FILE FORMAT 部分中描述
sshd(8)
。AuthorizedKeysFile
可能包含%T
在连接设置期间被替换的形式的标记。以下标记定义:%%
由文字所取代%
,%h
通过被认证的用户的主目录替换,并且%u
由用户的用户名所取代。扩展后,AuthorizedKeysFile
取为绝对路径或相对于用户主目录的路径。可以列出多个文件,以空格分隔。或者,此选项可以设置为none
跳过检查文件中的用户密钥。默认值为.ssh/authorized_keys .ssh/authorized_keys2
.
强调我的。
所以你可以设置:
AuthorizedKeysFile .ssh/%u_authorized_keys
Run Code Online (Sandbox Code Playgroud)
然后为用户foo
创建一个authorized_keys
文件.ssh/foo_authorized_keys
。
关于权限的说明
从人 sshd:
~/.ssh/authorized_keys
...
如果此文件、~/.ssh
目录或用户的主目录可由其他用户写入,则该文件可能会被未经授权的用户修改或替换。在这种情况下,除非该StrictModes
选项已设置为 , 否则 sshd 将不允许使用它no
。
所以你可能需要把你的钥匙放在外面.ssh/
,否则设置StrictModes
为no
. 如果您设置StrictModes
为no
确保其他用户无法authorized_keys
为其他人创建密钥,或删除其他用户的授权密钥。可能最好执行以下操作:
AuthorizedKeysFile .ssh_%u/authorized_keys
Run Code Online (Sandbox Code Playgroud)
.ssh_foo/
为 user创建一个foo
只能foo
读/写的目录。
您可以选择是否还允许.ssh/authorized_keys
使用
AuthorizedKeysFile .ssh/authorized_keys .ssh_%u/authorized_keys
Run Code Online (Sandbox Code Playgroud)
这将允许“正常”形式的authorized_keys
仍然有效,并且authorized_keys
文件必须由您的用户拥有并具有正确的权限,否则它将被忽略。仍然认为不应该authorized_keys
为另一个用户创建文件,这可能意味着以 root 用户身份访问该文件,因此它是空的。
归档时间: |
|
查看次数: |
9445 次 |
最近记录: |