Estou logado em uma caixa win2008, executo scp
a opção -i que aponta para o diretório onde a chave privada reside na caixa win2008.
scp -i "cygdrive/c/users/userid/privkey..." user@linux:/dirA/dirB/* .
Quando executo este comando na caixa do win2008, ele efetua login na caixa do Linux, corresponde às chaves e envia os arquivos para a caixa do win2008. Se eu não especificar a chave, uma senha será solicitada.
Gerei as chaves na caixa do win2008 usando ssh-keygen. Adicionei a chave do Linux na configuração do winsshd em chaves públicas. Então peguei a chave do ssh-keygen e coloquei na caixa do Linux.
Onde está o comando scp procurando a chave? Como posso executar scp
a partir da caixa do win2008 sem passar a chave como parâmetro?
Responder1
Se entendi sua pergunta corretamente, existem algumas opções ...
defina o local do arquivo de identidade padrão da mesma forma que é feito para SSH, conforme explicado aqui...https://stackoverflow.com/questions/84096/setting-the-default-ssh-key-location
ou alias seu
scp
comando para incluir o modificador assim ...alias scp='scp -i /path/of/keyfile'
Ambos devem funcionar, mas recomendo a opção 1 em vez da opção 2. É a maneira mais correta de fazer isso.
Responder2
Acho que encontrei minha própria resposta. Aparentemente, o scp está procurando o arquivo de chave privada com o nome id_dsa E deseja o arquivo no diretório .ssh. Depois que encontrei home/.ssh na estrutura de diretórios cygwin (outra peça-chave do quebra-cabeça) e adicionei o arquivo de chave privada com o nome id_dsa e executei o comando scp sem a opção -i, funcionou. Obrigado a todos por enviarem vibrações 'inteligentes' em minha direção para que eu pudesse resolver isso. Não estou mais perplexo! Gosto de todas as sugestões feitas aqui. Agradeço o feedback rápido.