Qual é a melhor maneira de fazer scp
de uma caixa para outra sem solicitar a 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 digitar uma senha
[executando isso no servidor A /home/oracle/export/
]
scp files.txt [email protected]:/home/oracle/import
Isso solicitaria uma senha ao inserir o comando.
Eu entendo que é necessário gerar e copiar um keygen 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. Eu devo copiar os dois arquivos ( id_rsa
, id_rsa.pub
) no servidor B /home/oracle/.ssh
?
Ao fazer uma pesquisa no Google sobre isso, alguns artigos mencionados sobre como anexar / concatenar isso em allowed_keys.
2. Eu devo criar esse arquivo sozinho?
Pareço estar confuso sobre qual é o caminho certo para fazer isso.
Aliás, os dois servidores estão executando o Suse Linux Enterprise Edition 9 ...
fonte
Respostas:
id_rsa
para si mesmo; no entanto,id_rsa.pub
qual é a sua chave pública, pode ser copiada para servidores aos quais você deseja ter acesso. Concatene-os até o final de~/.ssh/authorized_keys
.~/.ssh/authorized_keys
se ainda não estiver criado; caso contrário, basta anexar ao final do arquivo, usandocat id_rsa.pub >>~/.ssh/authorized_keys
.fonte
Também existe uma ferramenta que classifica tudo isso para você chamado
ssh-copy-id
.Anexará a chave no seu agente se você tiver uma em execução no
authorized_keys
arquivo e a criará se ela não existir com as permissões corretas. Se você não estiver executando um agente, poderá especificar a chave a ser pressionada-i
:ssh-copy-id -i ~/.ssh/id_rsa
fonte
Você também deve verificar as permissões nos vários arquivos e diretórios:
Seu diretório pessoal não deve ser gravável por ninguém além de você.
fonte
Caso você configure a chave gerada,
ssh-keygen
mas ainda assim a transferência com menos senha não funcione, verifique a chave pública usada na máquina de origem no comando modo detalhado como abaixo:Geralmente, refere-se à chave pública na
/home/<user>/.ssh/id_rsa.pub
qual pode ser diferente daquela que você gerou usandossh-keygen
. Você precisa adicionar issoid_rsa.pub
no servidor de destino.fonte
Eu faria o seguinte:
Isso copia a chave do cliente para o servidor. Você precisará da senha do servidor para adicionar sua chave ao anel.
Eu, pelo menos, desligaria a autenticação de senha.
fonte