Preciso ter uma frase secreta para minha chave SSH RSA?

63

Antes de começar meu trabalho atual (em uma pequena empresa), meu escritório não tinha firewall na rede e, literalmente, nada estava sendo feito backup. Agora que assinei um departamento dedicado de administrador de sistemas / one-man-IT, venho fazendo o que posso para mudar isso. Depois de explicar ao meu chefe como estávamos vulneráveis, ele me permitiu instalar alguns servidores de backup, um dos quais em sua casa.

Neste momento, estou tentando configurar tudo para que eu possa automatizar os backups diários. Estou planejando usar o rsync através do ssh para fazer isso. Por segurança, bem como pela facilidade de automação, eu estava planejando desabilitar o login com senha ssh e usar somente a validação de chave rsa. Bem, se eu tiver uma senha rsa, eu ainda teria que digitar uma senha, e isso é um problema.

Não ter uma frase-senha rsa torna as coisas significativamente menos seguras? Eu sou a única pessoa na empresa que tem algum tipo de dica sobre esse tipo de coisa, então eu não estou muito preocupado com alguém ligando para um terminal na minha máquina (que sempre fica trancada quando eu sou AFK, de qualquer forma ) e ssh-ing em um dos servidores de backup e fazendo qualquer dano. Eu ainda sou muito, muito novo no mundo da administração de sistemas, e esta é minha primeira vez fazendo algo assim, e eu não quero deixar nenhum buraco na configuração de segurança.

Os computadores em questão aqui estão executando o Ubuntu 10.10, o SME Server e o OSX 10.6, se isso de alguma forma fizer alguma diferença.

    
por eckza 23.03.2011 / 15:50

3 respostas

78

Como você sabe, a vantagem que a senha oferece é que, se alguém conseguir ler sua chave privada, ela não poderá usá-la.

Se alguém conseguir acessar essa chave privada, você deverá ter como certo que eles têm acesso (ed) / comprometeu todas as máquinas configuradas com a chave pública. Coisas como .bash_history ou .ssh / config tornam isso mais fácil, mesmo que o seu .ssh / known_hosts seja ofuscado.

Não ter uma senha na sua chave não é o fim do mundo, aqui estão 3 ideias para tentar ajudá-lo a se proteger um pouco melhor, apesar disso. ( O biggie é o segundo, leia isso se nada mais )

  1. Não use apenas a mesma chave em todas as máquinas e usuários. Gere cada usuário em cada máquina (que precisa fazer esse tipo de coisa) seu próprio par de chaves. Isso permitirá que você mantenha um controle refinado sobre o que é capaz de ssh onde.

  2. Ao adicionar a chave ao seu arquivo authorized_keys, você pode bloqueá-lo para poder executar somente um comando específico ou usá-lo somente de um host específico.

    Veja man ssh e procure comando = e de =

    A sintaxe é algo como:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    i.e. pop 'rsync' e somente 'rsync' pode ser chamado pela sua chave, e somente pelo endereço IP 1.2.3.4. Vários IPs podem ser separados por , . Nomes de host também são suportados.

  3. Outra coisa que vem à mente é a diretiva 'AllowUser' no seu sshd_config

    AllowUsers

    This keyword can be followed by a list of user name patterns, separated by spaces. If specified, login is allowed only for user names that match one of the patterns. '*' and '?' can be used as wildcards in the patterns. Only user names are valid; a numerical user ID is not recognized. By default, login is allowed for all users. If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts.

    Isso basicamente garante que o usuário só possa fazer login a partir de um determinado local. (embora também aceite curingas) Não vai resolver todos os seus problemas, mas pelo menos dificultará os outros.

por 23.03.2011 / 16:44
4

Você pode usar algo como chaveiro para tornar a frase-chave menos dolorosa. Isso é um pouco mais seguro do que usar um login sem senha e pode ser usado em combinação com as outras respostas aqui. Resposta da PriceChild foi muito bom.

    
por 23.03.2011 / 21:27
-4

Pessoalmente eu uso DSA não RSA, principalmente porque é o que eu sempre usei e eu sei que 'apenas funciona', mas a teoria eu acho que é a mesma. Você pode substituir dsa por rsa no abaixo.

Na fonte:

$ ssh-keygen -t dsa

Em seguida, copie o conteúdo do arquivo .ssh/id_dsa.pub para .ssh/authorized_keys na conta do usuário no destino.

Então você deve ser capaz de ssh entre a origem e o destino sem senhas.

    
por 23.03.2011 / 16:01