SCP de um servidor para outro sem solicitação de senha

17

Qual é a melhor maneira de fazer scp de uma caixa para outra sem solicitar senha?

Existem dois servidores:

  • Servidor A (10.152.2.10): /home/oracle/export/files.txt

  • Servidor B (10.152.2.11): /home/oracle/import/

Se eu quiser transferir os arquivos usando scp do servidor A para o servidor B sem ser solicitado a inserir uma senha

[executando isso do servidor A, /home/oracle/export/ ]

scp files.txt [email protected]:/home/oracle/import

Isso me solicitaria uma senha ao digitar o comando.

Eu entendo que um keygen é necessário para ser gerado e copiado para o Servidor A. Assim [no servidor A]:

ssh-keygen -t rsa

Isso me dá dois arquivos armazenados em /home/oracle/.ssh :

id_rsa
id_rsa.pub

1. Devo copiar os dois arquivos ( id_rsa , id_rsa.pub ) para o servidor B /home/oracle/.ssh ?

Enquanto fazia uma pesquisa no google sobre isso, alguns artigos mencionaram sobre acrescentar / concatenar isso a authorized_keys.

2. Eu deveria criar este arquivo sozinho?

Parece que estou confuso sobre o que é o caminho certo para fazer isso.

Btw, os dois servidores estão executando o Suse Linux Enterprise Edition 9 ...

    
por jimmij 27.02.2009 / 06:55

5 respostas

15

  1. Não, você mantém id_rsa para você mesmo; no entanto, id_rsa.pub , que é sua chave pública, pode ser copiado para servidores aos quais você deseja ter acesso. Concatene-os no final de ~/.ssh/authorized_keys .
  2. Sim, você pode criar ~/.ssh/authorized_keys se ainda não tiver sido criado; caso contrário, basta anexar ao final do arquivo, usando cat id_rsa.pub >>~/.ssh/authorized_keys .
por 27.02.2009 / 07:08
11

Também há uma ferramenta que classifica tudo isso para você chamada ssh-copy-id .

Ele anexará a chave em seu agente se você tiver um em execução no arquivo authorized_keys e o criará se ele não existir com as permissões corretas. Se você não estiver executando um agente, poderá especificar a chave a ser pressionada com -i : ssh-copy-id -i ~/.ssh/id_rsa

    
por 02.06.2011 / 06:42
5

Você também deve verificar as permissões nos vários arquivos e diretórios:

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

Seu diretório pessoal não pode ser escrito por ninguém além de você.

    
por 17.03.2009 / 21:42
0

No caso de você configurar a chave gerada a partir de ssh-keygen , mas ainda a transferência com menos senha não funcionar, verifique a chave pública usada na máquina de origem no comando modo detalhado como abaixo:

sftp -v -oPort=22 userid@server

Geralmente, refere-se à chave pública em /home/<user>/.ssh/id_rsa.pub que pode ser diferente de um que você gerou usando ssh-keygen . Você precisa adicionar esse id_rsa.pub no servidor de destino.

    
por 02.09.2016 / 09:16
0

Eu faria o seguinte:

On the client:

ssh-keygen -t rsa
ssh-copy-id [email protected]

Isso copia a chave do cliente para o servidor. Você precisará da senha do servidor para adicionar a chave ao seu anel.

  • A autenticação por senha precisa estar ativada ou você precisa entregar manualmente o arquivo de chaves ao servidor.

On the Server:

Eu teria pelo menos variado, desative a autenticação por senha.

    
por 26.11.2018 / 03:36