Como migrar a chave ssh para o novo servidor CentOS?

2

Temos muitos scripts que são executados em ssh por meio de pares de chaves salvos (sem senha). Ambos os clientes e servidores são o CentOS 6.x.Eu sei que se você pegar um novo computador cliente (onde os scripts são executados), você pode simplesmente copiar o ~ / .ssh / known_hosts do computador antigo para o novo.

Mas se eu estiver substituindo o servidor ao qual essa estação de trabalho se conecta, o que copio para preservar o par de chaves? Eu tentei copiar o conteúdo de / etc / ssh. Depois que fiz isso, não recebi mais a recusa da conexão "a chave foi alterada" no cliente, mas ainda tive que digitar a senha.

Eu pesquisei isso e não consigo encontrar muito. O que estou fazendo de errado?

    
por kiwisan 15.02.2014 / 03:29

4 respostas

3

Quando você cria uma chave privada, ela também cria uma chave pública correspondente.

A idéia por trás do par de chaves privada / pública é que você mantenha sua chave privada segura (não a envie pela rede, pela Internet ou até mesmo permita que outros usuários a leiam).

A chave pública é o que você armazena no servidor ao qual deseja se conectar.

Então, quando você se conecta a um servidor via ssh, você fornece sua chave privada e um usuário no servidor para efetuar login como: ssh -i ~/.ssh/path/to/your/private/key user@server

No servidor você armazena suas chaves públicas, aqui: /home/user/.ssh/authorized_keys

Você pode copiar o conteúdo do arquivo authorized_keys dos servidores para outro servidor, é apenas um arquivo com texto (cada linha corresponde a uma chave pública).

    
por 15.02.2014 / 06:09
3

As chaves SSH são armazenadas em ~/.ssh/authorized_keys

Você deve conseguir transferir esse arquivo do servidor antigo para o novo servidor para resolver seu problema.

    
por 15.02.2014 / 04:00
0

ssh-copy-id -i.ssh / key.pub user @ server deve fazer o truque.

    
por 15.02.2014 / 13:40
0

Assegure-se de que seu key.pub exista em .ssh / authorized_keys para o usuário que você está tentando autenticar como.

Você pode fazer isso executando isto:

key=$(cat ~/.ssh/key.pub)
ssh user@host "cat ~/.ssh/authorized_keys" |grep $key

Se você vir algum erro de uso do Grep, certifique-se de que seu caminho key.pub esteja correto e que exista. Se não, você pode criar um:

ssh-keygen -b 4096 -t rsa -f ~/.ssh/key

Se você não encontrar nenhum arquivo ou diretório desse arquivo de chaves autorizado, ele não existe e você desejará criá-lo.

Se não estiver lá, você pode copiá-lo executando este comando:

cat ~/.ssh/key.pub | ssh user@host "cat >> ~/.ssh/authorized_keys"

Uma vez que você tenha este trabalho, é uma boa prática desabilitar a autenticação de senha em / etc / ssh / sshd_conf

Exemplo de alterações de parâmetros em / etc / ssh / sshd_config:

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no

Para obter mais informações sobre como proteger o SSH no CentOS, consulte Protegendo o OpenSSH no wiki do CentOS.

    
por 17.02.2014 / 03:54

Tags