
Eu tenho uma rede de várias caixas Linux/Unix (várias caixas ubuntu, raspian e OS-X) nas quais faço login rotineiramente. Geralmente estou na máquina OSX e gerei um par de chaves que foi compartilhado com cada uma das caixas e posso fazer login em cada uma delas usando o par de chaves.
O problema que estou tendo é tentar criar o par de chaves para outras caixas para quando preciso copiar arquivos diretamente entre essas caixas, já que na maioria das vezes o MBP está em wifi e a conexão fica lenta para mover arquivos grandes.
Para dar um exemplo simples, meu MBP é o computador A. Ubuntu #1 é o computador B e Ubuntu #2 é o computador C.
Usando pares de chaves:
A pode fazer login em B
A pode fazer login em C
Mas B não pode entrar em C nem C pode entrar em B
O erro que recebo é um erro de "chave pública" permissão negada (chave pública).
Em todos os lugares que pesquiso sobre esse erro, parece ser o caso em que várias chaves são usadas para entrar em caixas diferentes.
A única maneira que consigo pensar em fazer isso é criar o mesmo par de chaves e colocar as mesmas chaves públicas e privadas em cada computador, mas isso parece um risco de segurança tendo os dois no mesmo local.
editar:
Então é isso que acontece com mais detalhes (desculpe, eu deveria ter sido mais aprofundado)
De A (MBP) eu entro em B (bbox), mas não consigo logar em C (sol) (de B).
De A, posso entrar em C, mas não em B (de C).
madivad@bbox:~$ ssh sun
Permission denied (publickey).
Também não consigo enviar a chave pública pelo mesmo motivo:
madivad@bbox:~$ ssh-copy-id sun
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/madivad/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
(if you think this is a mistake, you may want to use -f option)
madivad@bbox:~$ ssh-copy-id -f sun
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/madivad/.ssh/id_rsa.pub"
Permission denied (publickey).
madivad@bbox:~$
Então vamos gerá-lo novamente (o que já fiz inúmeras vezes):
madivad@bbox:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/madivad/.ssh/id_rsa):
/home/madivad/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/madivad/.ssh/id_rsa.
Your public key has been saved in /home/madivad/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:<removed> madivad@bbox
The key's randomart image is:
+---[RSA 2048]----+
| So |
| beautiful it's |
| a shame to |
| remove it |
| (although |
| it's |
| probably not |
| required) |
+----[SHA256]-----+
madivad@bbox:~$ ssh-copy-id sun
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/madivad/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Permission denied (publickey).
madivad@bbox:~$
Parece que estou andando em círculos
Responder1
O erro que recebo é um erro de "chave pública".
Com tanta precisão na forma como você relata erros, tudo o que posso dizer é que você cometeu um erro em algum lugar ao gerar ou implantar as chaves.
O que você deve fazer é gerar um par de chaves em cada máquina, executando o comando
ssh-keygen
Então, para cada par de máquinas em que você deseja usar a chave em X para fazer login na máquina Y, execute o seguinte comando na máquina X:
ssh-copy-id X