SSHD 配置中的 %h 是什么意思?

SSHD 配置中的 %h 是什么意思?

我正在服务器上设置 OpenSSH,并且已经在客户端上创建了密钥,但我不知道应该将公钥放在主机上的什么位置。我知道需要将其添加到文件中authorized_keys,但授权密钥文件在哪里?sshd_config它位于

%h/.ssh/authorized-keys

我环顾四周,发现有人将 %h 作为主目录的快捷方式,但是它是主目录/home/.ssh/home/user/.ssh

请原谅我的无知并提前感谢您!

.ssh 目录不在任何一个位置,我已经查看过了。

答案1

根据man 5 sshd_config

%h 被替换为正在验证的用户的主目录

这意味着文件将是/home/user/.ssh/authorized_keys。如果.ssh目录丢失(如果之前没有配置,这似乎是正常的),您可以创建它以及authorized_keys其中的文件,然后使用您的公钥填充文件的内容。

答案2

占位符%h可以具有两种(不相关的)含义之一,具体取决于它在配置中的使用位置sshd(守护进程/服务器)或远程控制(客户)。

手册页sshd_配置(5)文档%h作为你的主目录的文件路径,并可以被多个与文件和目录相关的关键字接受:

代币

一些关键字的参数可以使用在运行时扩展的标记:

  • [...]
  • %h- 用户的主目录。
  • [...]

AuthorizedKeysCommand 接受令牌 %%、%f,%H、%k、%t、%U 和 %u。

AuthorizedKeysFile 接受令牌 %%%H、%U 和 %u。

AuthorizedPrincipalsCommand 接受令牌 %%、%F、%f、%H、%i、%K、%k、%s、%T、%t、%U 和 %u。

AuthorizedPrincipalsFile 接受令牌 %%%H、%U 和 %u。

ChrootDirectory 接受令牌 %%%H、%U 和 %u。

手册页ssh_配置(5)文档%h作为命令中指定的主机名ssh

代币

  • %h- 远程主机名。

[...]

HostName接受标记 %% 和 %h。

这通常用于在命令行上创建快捷方式。另请参阅https://superuser.com/q/503687/164493

相关内容