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


13

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

%h/.ssh/authorized-keys

我环顾了一下,我见过的人参考%H作为主目录的快捷方式,但它是主目录中/home/.ssh或者是它/home/user/.ssh

请原谅我的无知,并先谢谢您!

我已经看过.ssh目录不在这两个位置。

Answers:


13

根据man 5 sshd_config

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

这意味着文件将是/home/user/.ssh/authorized_keys。如果.ssh缺少目录(如果以前未配置,则看起来很正常),则可以创建该目录以及其中的authorized_keys文件,然后使用公共密钥填充文件的内容。


非常感谢你!我将公共密钥放在已安装在/ media / usb的闪存驱​​动器上,我试图运行此命令来创建密钥并将其添加到authorized_keys文件中。sudo cat /media/usb/id_rsa.pub >> /home/user/.ssh/authorized_keys但是,这给了我一个权限被拒绝的错误-bash:/home/user/.ssh/authorized_keys:权限被拒绝怎么了?&我将如何创建此authorized_keys文件?任何特定的文件格式或其他内容吗?
A. Franco

如果您自己创建(或什至没有创建),请确保您赋予正确的权限,.ssh目录为700,authorized_keys为600
Jim W说要恢复Monica

0

%h占位符可以具有两个(不相关)的含义之一,这取决于当在配置用于sshd的(守护程序/服务器)或SSH(客户端)。

sshd_config(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_config中(5)文件%h作为指定的主机名ssh的命令。

代币

  • %h -远程主机名。

[..]

HostName 接受令牌%%和%h。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.