使ssh主机对计算机上的所有用户都是全局的


15

因此,SSH具有这些文件,这些文件为特定用户配置设置。

~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts

我想全球化其中一些文件,例如configknown_hosts。这样其他用户(包括root)可以共享配置的主机。

最好的方法是什么?

Answers:


21

因为~/.ssh/config您可以根据手册页在/ etc / ssh / ssh_config中放置系统范围的相关设置:

ssh(1)按以下顺序从以下来源获取配置数据:

  1. 命令行选项
  2. 用户的配置文件(〜/ .ssh / config)
  3. 系统范围的配置文件(/ etc / ssh / ssh_config)

对于每个参数,将使用第一个获得的值。配置文件包含由“主机”规范分隔的部分,并且该部分仅适用于与规范中给定的模式之一匹配的主机。

请注意,将仅使用第一个值,这意味着用户始终可以在本地覆盖系统范围的配置选项。

~/.ssh/known_hosts您使用/etc/ssh/ssh_known_hosts或由GlobalKnownHostsFile配置选项指定的另一个文件:

GlobalKnownHostsFile

指定用于全局主机密钥数据库的文件,而不是/ etc / ssh / ssh_known_hosts。

我不确定是否可以使用其他文件,但是我想如果您也确实想在用户之间共享私钥,则可以使用符号链接解决问题。


1
您的GlobalKnownHostsFile报价中有错字。
cjm 2010年

1
您可以设置UserKnownHostsFile = / dev / null ssh将永远不会在用户known_hosts文件中找到有效密钥,但是用户仍然可以接受一个临时密钥。
Janning

1
@Janning,看来实际上有一个IgnoreUserKnownHosts选项(值yesno)。
kael

请注意,全局/etc/ssh/ssh_known_hosts文件必须是世界可读的。ssh-keygen -Hf /etc/ssh/ssh_known_hosts手动添加条目后,我曾用来重新哈希我的,看来它已设置为“仅所有者”。
kael

1

由于root具有强大的功能,因此我将使用root cron作业将文件复制给其他用户。可以简单地添加已知主机和授权密钥。如果全部在一个分区上,则有hardlink选项。不确定符号链接是否适用于这些文件,但是您也可以尝试将它们放在共享但安全的位置。


2
这样会阻止用户添加自己的主机,恕我直言,这是意料之外的。
Maciej Piechotka 2010年

我忘记了硬链接文件是否必须具有相同的权限,但我怀疑确实如此。但是,您可以使用cron复制文件,然后确保烫发正确。
xenoterracide 2010年
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.