usando o arquivo de chave como parâmetro, como posso fazer isso, se possível?

51
scp -i ~/.ssh/id_rsa.pub events*$date*_QA.log $remote_user@$remote_server:$remote_location

O script mencionado acima está incorreto? Não estou fazendo isso corretamente?

Eu fui ao .sshdiretório e vi que o servidor remoto está no known_hostsarquivo.

Mas, quando eu faço scp comum sem nenhum arquivo como parâmetro, ele ainda está pedindo senha

scp events*$date*_QA.log $remote_user@$remote_server:$remote_location

Como posso incluir o arquivo de chave no meu comando?

sh-3.2$ grep server ~/.ssh/*
/home/user/.ssh/known_hosts:server....com,ip_addr ssh-rsa Asine=jhjsdhfjsadhfjkashdfjhasdjfhksadjfhasjdfhj
Machavity
fonte

Respostas:

67
 -i identity_file
         Selects the file from which the identity (private key) for public
         key authentication is read.  This option is directly passed to
         ssh(1).

Use ~/.ssh/id_rsa.

whitequark
fonte
ainda está pedindo a senhash-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:
@tech_learner estranho, como que funciona para mim
whitequark
2
Você pode ter que usar um caminho real, como em / home / user / em vez de ~. Isso parecia ter funcionado para mim.
Evan Darwin
11
Você deseja que o conteúdo do usuário local ~ / .ssh / id_rsa.pub seja colocado no arquivo allowed_keys do servidor remoto. Geralmente está em ~ / .ssh / allowed_keys. Você também precisa ser muito específico sobre as permissões de arquivos em ~ / .ssh, tornando-as minimamente acessíveis. O sshd é muito específico sobre as permissões de arquivo.
perfil completo de JR Lawhorne
No Mac OS X, só funcionou se -i ~/.ssh/id_rsafosse a primeira opção. Então, isso funcionou: scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/. Isso não funcionou:scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asmaier
1

Isso pode ajudar outro noob.

[Eu sei que este é um exemplo circular redundante, mas é bom ilustrar] Cenário:

  1. ssh do Mac -> Ubuntu
  2. arquivos scp do Mac -> Ubuntu
  3. fechar arquivos ssh e scp do Ubuntu -> Mac

Eu apenas criei chaves ssh no meu Mac (via ssh-keygen) e as compartilhei com a máquina executando o Ubuntu via (ssh-copy-id). Para poder copiar arquivos, enquanto estiver conectado ao meu Mac a partir da máquina executando o Ubuntu, mas não o contrário.

Solução: tive que criar chaves ssh na máquina Ubuntu e compartilhá-las com o meu Mac. então eu poderia executar com êxito o seguinte comando na máquina Ubuntu

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

No Mac

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

ssh [email protected]

# Now on Ubuntu
ssh-keygen
ssh-copy-id [email protected]

E agora o seguinte comando deve copiar o arquivo sem solicitar senha para o MAC

sudo scp -i /home/ubuntu/.ssh/id_rsa [email protected]:~/Documents/Fluff/Version-Control/tools/pull.sh .
Patrick Walter
fonte
0

Testado e corrigido através destas instruções: https://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login

As instruções aqui funcionaram perfeitamente quando testei em minhas caixas (CentOS / CentOS). Eu imagino que o problema é que suas chaves ssh não estão vinculadas a um nome de usuário.

Exemplo: authorized_keys gato # na Box Estou SSHing / scpin' para ssh-rsa BLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v #username [email protected] está ligada à chave e é um host autorizado

Max Humphrey
fonte