我正在服务器上设置 OpenSSH,并且已经在客户端上创建了密钥,但我不知道应该将公钥放在主机上的什么位置。我知道需要将其添加到文件中authorized_keys
,但授权密钥文件在哪里?sshd_config
它位于
%h/.ssh/authorized-keys
我环顾四周,发现有人将 %h 作为主目录的快捷方式,但是它是主目录/home/.ssh
吗/home/user/.ssh
?
请原谅我的无知并提前感谢您!
.ssh 目录不在任何一个位置,我已经查看过了。
答案1
%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。