Eu gostaria de globalizar alguns desses arquivos, como confige known_hosts. Para que outros usuários (incluindo raiz ) possam compartilhar os hosts configurados.
Pois ~/.ssh/configvocê pode colocar configurações relevantes em todo o sistema em / etc / ssh / ssh_config de acordo com a página de manual :
O 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 em todo o sistema (/ etc / ssh / ssh_config)
Para cada parâmetro, o primeiro valor obtido será usado. Os arquivos de configuração contêm seções separadas pelas especificações de "Host", e essa seção é aplicada apenas aos hosts que correspondem a um dos padrões fornecidos na especificação.
Observe que somente o primeiro valor será usado, o que significa que o usuário sempre pode substituir as opções de configuração em todo o sistema localmente.
Para ~/.ssh/known_hostsvocê poder usar /etc/ssh/ssh_known_hostsou outro arquivo especificado pela opção de configuração GlobalKnownHostsFile:
GlobalKnownHostsFile
Especifica um arquivo a ser usado para o banco de dados de chaves do host global em vez de / etc / ssh / ssh_known_hosts.
Não tenho certeza se é possível para os outros arquivos, mas imagino que você poderia trabalhar com links simbólicos se realmente quisesse compartilhar chaves privadas entre os usuários.
Você tem um erro de digitação na sua cotação GlobalKnownHostsFile.
Cjm 30/10/10
1
Você pode definir UserKnownHostsFile = / dev / null ssh nunca encontrará uma chave válida dentro do arquivo known_hosts dos usuários, mas ainda assim o usuário pode aceitar um temporário.
Janning
1
@ Janning, parece que há realmente uma IgnoreUserKnownHostsopção para isso (valores yesou no).
kael
Observe que o /etc/ssh/ssh_known_hostsarquivo global deve ser legível pelo mundo. Eu estava usando ssh-keygen -Hf /etc/ssh/ssh_known_hostspara refazer a tarefa após adicionar manualmente entradas e parece que ele estava sendo definido como somente proprietário.
kael
1
Como o root é todo poderoso, eu usaria um trabalho cron do root para copiar os arquivos de outros usuários. Hosts conhecidos e chaves autorizadas podem simplesmente ser anexados. Se tudo estiver em uma partição, existe a opção de hardlink. Não tenho certeza se os links simbólicos funcionariam para os arquivos, mas você também pode tentar isso, basta colocá-los em um local compartilhado e seguro.
Impediria que os usuários adicionassem seus próprios hosts, o que IMHO é efeito não intencional.
Maciej Piechotka
Eu esqueço se um arquivo de hardlink tem que ter as mesmas permissões, mas suspeito que sim. No entanto, você pode copiar o arquivo com o cron e, em seguida, verifique se as permissões estão corretas.
IgnoreUserKnownHosts
opção para isso (valoresyes
ouno
)./etc/ssh/ssh_known_hosts
arquivo global deve ser legível pelo mundo. Eu estava usandossh-keygen -Hf /etc/ssh/ssh_known_hosts
para refazer a tarefa após adicionar manualmente entradas e parece que ele estava sendo definido como somente proprietário.Como o root é todo poderoso, eu usaria um trabalho cron do root para copiar os arquivos de outros usuários. Hosts conhecidos e chaves autorizadas podem simplesmente ser anexados. Se tudo estiver em uma partição, existe a opção de hardlink. Não tenho certeza se os links simbólicos funcionariam para os arquivos, mas você também pode tentar isso, basta colocá-los em um local compartilhado e seguro.
fonte