Eu gero um par de chaves ssh no meu mac e adiciono a chave pública ao meu servidor ubuntu (na verdade, é uma máquina virtual no meu mac), mas quando tento fazer login no servidor ubuntu, ele diz:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
Permission denied (publickey,password).
Eu tentei várias maneiras de resolver isso, alterar o modo de arquivo de chave, alterar o modo de pasta, como algumas respostas no stackoverflow, mas não funciona.
a permissão do arquivo de chave:
vm dir:
drwxr-xr-x 4 tudouya staff 136 4 29 10:37 vm
key file:
-rw------- 1 tudouya staff 1679 4 29 10:30 vm_id_rsa
-rw-r--r-- 1 tudouya staff 391 4 29 10:30 vm_id_rsa.pub
por favor me dê uma idéia ... ===========================================
I escreva as informações do host em ssh_config:
Host ubuntuvm
Hostname 10.211.55.17
PreferredAuthentications publickey
IdentityFile /Users/tudouya/.ssh/vm/vm_id_rsa.pub
Eu corro o comando "ssh -v ubuntuvm", ele exibe:
ssh -v ubuntuvm
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 103: Applying options for *
debug1: /etc/ssh_config line 175: Applying options for ubuntuvm
debug1: Connecting to 10.211.55.17 [10.211.55.17] port 22.
debug1: Connection established.
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub type 1
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-8
debug1: match: OpenSSH_6.6.1p1 Ubuntu-8 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 55:6d:4f:0f:23:51:ac:8e:70:01:ec:0e:62:9e:1c:10
debug1: Host '10.211.55.17' is known and matches the RSA host key.
debug1: Found key in /Users/tudouya/.ssh/known_hosts:54
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: Server accepts key: pkalg ssh-rsa blen 279
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: No more authentication methods to try.
Permission denied (publickey,password).
ssh
permissions
key
土豆 丫
fonte
fonte
-i id_rsa.pub
no comando ssh usar para conexão. Parece que a imposição de usar alguma chave pública na força de comando ssh para solicitar senha (mesmo quando a frase secreta estava vazia, pelo menos no meu caso)Respostas:
Parece que você está tentando usar o arquivo de chave errado. O arquivo com a extensão ".pub" é o arquivo de chave pública . O arquivo correspondente sem a extensão ".pub" é o arquivo de chave privada . Ao executar um cliente ssh para conectar-se a um servidor remoto, você deve fornecer o arquivo de chave privada ao cliente ssh.
Você provavelmente tem uma linha no seu
.ssh/config
arquivo (ou/etc/ssh_config
) que se parece com isso:Você precisa remover a extensão ".pub" do nome do arquivo:
fonte
.pub
arquivo public ( ) em vez do arquivo privado.ssh -i id_ed25519.pub
enquanto fazendossh -i id_ed25519
obrasEu sugiro que você faça:
Para mim, o trabalho está bem.
fonte
“Permissions 0644 for 'id_rsa.pub' are too open."
e a chave foi, portanto, ignorada. Provavelmente porque copiei o arquivo-chave do meu outro PC. Mas a correção de permissões corrigiu o problema. THX!A chave deve ser legível pelo usuário conectado.
Tente o seguinte:
fonte
ssh-add ~/.ssh/id_rsa.pub
Este trabalho para mim. Quando criei esse arquivo, sou capaz de me conectar à minha instância do EC2
fonte
Depois de executar o comando abaixo, ele funciona para mim
fonte
No meu caso, era um arquivo .pem. Acontece que também é bom para isso. Permissões alteradas do arquivo e funcionou.
chmod 400 ~/.ssh/dev-shared.pem
Obrigado por todos aqueles que ajudaram acima.
fonte
Se as chaves estiverem no diretório ~ / .ssh, use
chmod 400 ~ / .ssh / id_rsa
Se as chaves estiverem em um diretório diferente, use
caminho do diretório chmod 400 / id_rsa
Isso funcionou para mim.
fonte
chmod 400 ~/.ssh/id_rsa
isso que você quis dizer com @Anirban. Como mencionado acima: O arquivo com a extensão ".pub" é o arquivo de chave pública. O arquivo correspondente sem a extensão ".pub" é o arquivo de chave privada. Precisamos proteger um particular.Muitas respostas semelhantes, mas nenhuma explicação ...
O erro é gerado porque as permissões do arquivo de chave privada estão muito abertas. É um risco de segurança.
Altere as permissões no arquivo de chave privada para que sejam mínimas (somente leitura pelo proprietário)
chown <unix-name> <private-key-file>
chmod 400 <private-key-file>
fonte
Quanto a mim, o modo padrão de
id_rsa
é600
, o que significareadable
ewritable
.Depois de enviar esse arquivo para um repositório git e retirá-lo de outro PC, às vezes o modo do arquivo de chave privada se torna
-rw-r--r--
.Quando puxo o repositório com ssh após especificar o arquivo de chave privada, ele falhou e solicitou avisos iguais com você. A seguir está o meu roteiro.
Corrijo esse problema apenas alterando o modo para
600
.fonte
dar permissão 400 torna a chave privada e não acessível por alguém desconhecido. Torna a chave como protegida.
fonte
As chaves SSH devem ser privadas, portanto, a
644
permissão é muito aberta.Alterando a permissão do arquivo para
600
usandoresolve o problema. Como torna a chave acessível apenas ao usuário.
Ref: https://www.linux.com/training-tutorials/understanding-linux-file-permissions/
fonte
chmod 400 /etc/ssh/*
funciona para mim.fonte
Se você estiver usando um arquivo .ssh / config, tente
então:
fonte
Quem sugeriu o chmod 400 id_rsa.pub não parecia certo. Era bem possível que op usasse a tecla pub em vez da chave privada para o ssh.
Portanto, pode ser tão simples quanto
ssh -i /Users/tudouya/.ssh/vm/vm_id_rsa (the private key) user@host
corrigi-lo.--- atualização ---
Verifique este artigo https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 para saber como configurar a chave ssh
fonte
Basta correr abaixo para o seu pem
fonte
Eu removi o
.pub file
e funcionou.fonte
ssh-keygen -i -f /path/to/private.key > /desired/path/to/public.key
. Então, não está realmente perdido. :)