Você nunca precisa copiar todo o diretório ~/.ssh
, apenas o conteúdo da parte pública de sua (s) chave (s). O mais fácil de fazer assumindo que a autenticação por senha esteja ativada seria
user@darkstar ~ $ ssh-copy-id remoteusername@remotehostname
E deixe o ssh se preocupar em colocar tudo no lugar certo.
Se você precisar fazer isso manualmente, ou se você não tiver uma senha de autenticação e você deve ter o sysadmin colocar a chave no lugar, etc, então você precisa copiar o arquivo ~/.ssh/id_rsa.pub
. Uma vez que esteja na máquina remota, simplesmente adicione o conteúdo a qualquer coisa que já esteja no arquivo ~/.ssh/authorized_keys
sob a conta de usuário apropriada. Um simples cat id_rsa.pub >> ~/.ssh/authorized_keys
funcionará.
Por fim, você deseja garantir que as permissões na chave privada, o arquivo authorized_keys
e os diretórios ~/.ssh
em ambas as máquinas estejam definidos adequadamente - o diretório ~/.ssh
deve ser definido como 0700 e os arquivos dentro de deveria ser 600.
Para corrigir seu problema , faça o login na máquina remota, renomeie o diretório ~/.ssh
existente para outra coisa, recrie-o e defina as permissões corretamente, efetue logout e use o ssh-copy-id
de cima. Nesse ponto, você deve poder usar ssh usando sua chave e qualquer frase secreta associada a ela.
Editar para uma pergunta atualizada Você está sentindo falta do conceito de par de chaves que eu acho. Pense nas fechaduras das portas das casas - para que uma chave abra todas elas, elas têm que ter o mesmo alfinete no interior.
O arquivo id_rsa.pub para qualquer combinação entra no arquivo authorized_keys na máquina remota. Para que essa chave funcione, você deve ter a chave privada correspondente na máquina da qual está se conectando. Você pode lidar com várias chaves colocando-as em arquivos diferentes e usando a opção -i
para ssh (et al) para especificar qual chave privada se conectar.
Portanto, usando suas informações, você precisa obter o arquivo de chave privada do laptop (provavelmente ~/.ssh/id_rsa
) e colocá-lo no Servidor B, chamá-lo de algo como ~/.ssh/laptop_id_rsa
). Quando você ssh do Servidor B para o Servidor A, você pode fazer com ssh -i ~/.ssh/laptop_id_rsa user@serverA
. Se você quiser ssh de A para B, repita o processo colocando a chave privada em A. Alternativamente, você pode usar o servidor B como um host / túnel de salto, assim que você se conectar lá com as opções corretas, você pode Servidor A. Isso mantém seu arquivo de chave privada somente em seu laptop (bom para segurança, você não quer cópias flutuando, especialmente com uma senha sem senha!)
Você provavelmente também desejará configurar um arquivo ~/.ssh/config
para poder simplesmente fazer ssh serverA
e fazer com que ele use o nome de host, porta, nome de usuário, arquivo de identidade, etc.