Configurando a chave SSH com segurança para que o SCP / rsync seja executado sem senha

1

É assim que estou fazendo atualmente:

# ssh-keygen -t dsa -b 1024 -f /root/localhost-rsnapshot-key

Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]

# if [ ! -d ~/.ssh ]; then mkdir ~/.ssh ; chmod 700 ~/.ssh ; fi
# cd ~/.ssh/
# if [ ! -f config ]; then touch config ; chmod 600 config ; fi
# echo Host server2 >> config
# echo Hostname server2.domain.tld >> config
# echo IdentityFile /root/localhost-rsnapshot-key >> config

Agora, quando eu executo o rsnapshop:

backup  [email protected]:/home/     localhost/server2/

Eu recebo o seguinte:

rsnapshot hourly
reverse mapping checking getaddrinfo for server2-domain-tld.1-2-3-4 [1.2.3.4] failed - POSSIBLE BREAK-IN ATTEMPT!
[email protected]'s password:

Existe uma maneira de fazer isso sem uma senha?

    
por Tiffany Walker 27.11.2012 / 18:17

5 respostas

3

Você pode executar o comando ssh-copy-id [email protected] do server1 para copiar seu arquivo de identidade para o sistema remoto e permitir a autenticação do pubkey. Você também pode precisar certificar-se de que a autenticação baseada em chave está ativada em sua configuração do sshd.

    
por 27.11.2012 / 21:53
1

No server2, você precisa adicionar a chave pública gerada a /root/.ssh/authorized_keys

    
por 27.11.2012 / 21:42
0

Supondo que você queira autenticar em uma conta de shell chamada 'server2' em um host chamado 'server2', você precisa adicionar o conteúdo de localhost-rsnapshot-key.pub gerado no server1 ao arquivo server2:/home/server2/.ssh/authorized_keys .

    
por 27.11.2012 / 22:19
0
Primeiro, considere o uso de chaves rsa em vez de dsa, embora eu saiba que este é um conselho não solicitado, o rsa é mais seguro que o dsa, a menos que você tenha uma razão convincente para fazê-lo.

Deixe-me começar dizendo que farei isso usando o comando standart unix como scp, cat, chmod, chown e tal, em vez de usar comandos mais esotéricos, como o ssh-copy-id. Para que você possa usá-lo em praticamente qualquer sabor Unix, não apenas Linux.

Depois de executar o comando ssh-keygen , você tem dois arquivos no diretório .ssh:

id_dsa
id_dsa.pub


# on the local machine which will connect the remote server without a password

cd ${HOME}/.ssh
scp id_dsa.pub ${REMOTE_SERVER}:${REMOTE_USER_HOME}/.ssh
# if this errors out, you might need to create the .ssh on the remote server
#


# on the remote machine which will accept incoming ssh connection without a password
chown ${REMOTE_USER} ${REMOTE_USER_HOME}  # this should already be set like this
chown ${REMOTE_USER} ${REMOTE_USER_HOME}/.ssh # if this exists, it should be this way

chmod 700 ${REMOTE_USER_HOME}
chmod 700 ${REMOTE_USER_HOME}/.ssh

cd ${REMOTE_USER_HOME}/.ssh
cat id_dsa.pub >> ./authorized_keys
chown ${REMOTE_USER} ./authorized_keys
chmod 600 ./authorized_keys

Agora, você deve conseguir se conectar à máquina remota sem uma senha.

espero que isso ajude.

    
por 04.12.2012 / 19:27
-1

Embora já esteja explicado em algumas respostas acima, mas se você estiver procurando por mais detalhes, consulte este artigo.

Login com menos senhas

    
por 04.12.2012 / 19:13