Portanto, SSH tem esses arquivos que definem as configurações para um usuário específico.
~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts
Eu gostaria de globalizar alguns desses arquivos, como config
e known_hosts
. Para que outros usuários (incluindo root) possam compartilhar os hosts configurados.
Qual seria a melhor forma de fazer isso?
Para ~/.ssh/config
você pode colocar configurações relevantes em todo o sistema em/etc/ssh/ssh_config de acordo com a página de manual :
ssh (1) obtém dados de configuração das seguintes fontes na seguinte ordem:
- opções de linha de comando
- arquivo de configuração do usuário (~/.ssh/config)
- arquivo de configuração de todo o sistema (/ etc/ssh/ssh_config)
Para cada parâmetro, será utilizado o primeiro valor obtido. Os arquivos de configuração contêm seções separadas por especificações de “Host”, e essa seção só se aplica a hosts que correspondem a um dos padrões fornecidos na especificação.
Observe que apenas o primeiro valor será usado, o que significa que o usuário sempre pode substituir as opções de configuração de todo o sistema localmente.
Para ~/.ssh/known_hosts
você pode usar /etc/ssh/ssh_known_hosts
ou outro arquivo especificado pela opção de configuração GlobalKnownHostsFile:
GlobalKnownHostsFile
Especifica um arquivo a ser usado para o banco de dados de chaves global do Host em vez de/etc/ssh/ssh_known_hosts.
Não tenho certeza se isso é possível para os outros arquivos, mas imagino que você poderia resolver algo com links simbólicos se realmente quisesse compartilhar chaves privadas entre usuários também.
Como o root é todo poderoso, eu usaria um cron job do root para copiar os arquivos de outros usuários. Hosts conhecidos e chaves autorizadas podem ser simplesmente anexados. Se estiver tudo em uma partição, existe a opção de hardlink. Não tenho certeza se os links simbólicos funcionam para os arquivos, mas você também pode tentar isso, basta colocá-los em um local compartilhado, mas seguro.