SCP sobre SSH sem senha - não pode fazê-lo funcionar

1

Eu tenho um servidor Ubuntu 16.04 com SSH, configurei um par de chaves para que eu possa usar o SSH em um sistema remoto sem senha, isso funciona bem.

Estou tentando SCP de Local (system1) para outro remoto (system2), o SCP funciona bem, mas pede uma senha. Eu quero usar o par de chaves para cópias não autenticadas.

Eu segui vários guias da Web sobre como fazer isso, mas basicamente parece se resumir ao seguinte:

scp -i <path the PRIVATE key file>  filetocopy  [email protected]:~

Tudo que eu posso encontrar na internet diz que isso deve funcionar - mas ele continua pedindo a senha para o sistema remoto (2º), mesmo que eu saiba que o par de chaves funciona OK porque eu posso usá-lo para SSH.

Irritante - o mesmo comando acima funcionará perfeitamente sem solicitação de senha se for executado como root - seja por meio de 'sudo' ou de um terminal elevado ...

então:

sudo scp -i <path the PRIVATE key file>  filetocopy  [email protected]:~

Funciona bem, mas:

scp -i <path the PRIVATE key file>  filetocopy  [email protected]:~

não.

Não há arquivos na pasta .ssh das raízes, exceto nos arquivos known_hosts (ou seja, sem arquivos de chave)

O que devo fazer?

    
por icarusbop 18.10.2017 / 14:22

3 respostas

2

Parece que você copiou a chave root para o servidor remoto, enquanto a chave do usuário comum não foi copiada corretamente.

ssh e scp devem fornecer o mesmo feedback (com a diferença de login-em-servidor-remoto versus copiar-arquivo-em-servidor remoto)

Quando o par de chaves for copiado conforme necessário para o servidor remoto, o comando scp será:

scp local-file-name user@remote-host:/full/path/remote-file-name

Para copiar a chave de usuário para o servidor remoto, você pode usar ssh-copy -id

  

Nota: você deve substituir o mykey no comando abaixo, com o   nome do arquivo do seu arquivo-chave

Copie a chave para um servidor

Quando uma chave SSH for criada, o comando ssh-copy-id poderá ser usado para instalá-la como uma chave autorizada no servidor. Uma vez que a chave tenha sido autorizada para o SSH, ela concede acesso ao servidor sem uma senha.

Use um comando como o seguinte para copiar a chave SSH:

ssh-copy-id -i ~/.ssh/mykey user@host

Isso faz o login no host do servidor e copia as chaves para o servidor e as configura para conceder acesso, adicionando-as ao arquivo authorized_keys. A cópia pode pedir uma senha ou outra autenticação para o servidor.

Apenas a chave pública é copiada para o servidor. A chave privada nunca deve ser copiada para outra máquina.

Teste a nova chave

Quando a chave tiver sido copiada, é melhor testá-la:

ssh -i ~/.ssh/mykey user@host

O login deve agora ser concluído sem pedir uma senha. Observe, no entanto, que o comando pode solicitar a senha especificada para a chave. Solução de problemas

    
por Yaron 18.10.2017 / 14:32
1

Você tem que fazer as seguintes coisas para fazer o scp sobre o ssh sem senha:

ssh-keygen
[Enter]
[Enter]
[Enter]
cd ~/.ssh
ssh-copy-id -i id_rsa.pub username@serverip/hostname
scp username@serverip:/file/to/copy /directory/to/save

Isso funcionará, se você tiver algum erro, atualize.

    
por sourav 19.10.2017 / 14:15
0

Eu tenho isso ordenado - eu removi todas as minhas chaves e arquivos de chaves de ambos os sistemas e trabalhei através do processo de criação de novos arquivos de chaves e usando ssh-copy-id para copiar os arquivos. Agora funciona muito bem.

Deve haver alguma corrupção obscura no arquivo authorizes_keys, talvez confundindo-o. Obrigado novamente.

    
por icarusbop 19.10.2017 / 12:44