SSH Key: “Permissions 0644 for 'id_rsa.pub' are too open.” on mac

后端 未结 17 2012
[愿得一人]
[愿得一人] 2020-11-28 00:50

I generate a ssh key pair on my mac and add the public key to my ubuntu server(in fact, it is a virtual machine on my mac),but when I try to login the ubuntu server,it says:

相关标签:
17条回答
  • 2020-11-28 01:16
    debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub type 1
    

    It appears that you're trying to use the wrong key file. The file with the ".pub" extension contains the public portion of the key. The corresponding file without the ".pub" extension contains the private part of the key. When you run an ssh client to connect to a remote server, you have to provide the private key file to the ssh client.

    You probably have a line in the your .ssh/config file (or /etc/ssh_config) which looks like this:

    IdentityFile .../.ssh/vm/vm_id_rsa.pub
    

    You need to remove the ".pub" extension from the filename:

    IdentityFile .../.ssh/vm/vm_id_rsa
    
    0 讨论(0)
  • 2020-11-28 01:18

    giving permision 400 makes the key private and not accessible by someone unknown. It makes the key as a protected one.

    chmod 400 /Users/tudouya/.ssh/vm/vm_id_rsa.pub
    
    0 讨论(0)
  • 2020-11-28 01:21

    Those who suggested chmod 400 id_rsa.pub did not sound right at all. It was quite possible that op used pub key instead of private key to ssh.

    So it might be as simple as ssh -i /Users/tudouya/.ssh/vm/vm_id_rsa (the private key) user@host to fix it.

    --- update ---

    Check this article https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 for how to set up ssh key

    0 讨论(0)
  • 2020-11-28 01:24

    After running below command it works for me

    sudo chmod 600 /path/to/my/key.pem
    0 讨论(0)
  • 2020-11-28 01:26

    SSH keys are meant to be private so a 644 permission is too open.

    Binary references to set Permissions

     r(read) = 4
     w(write) = 2
     x(execute) = 1
    

    So by adding these numbers and by passing the summed digit to chmod command,We set the permission of file/directory. The first digit sets permission for the owner, second digit for group and the third one for all other users on the system who have no right to the file.

    A permission of 644 means 
    (4+2) = read/write permission for the owner
    (4) = read permission for the group 
    (4) = read permission for all other users 
     
    

    By changing the the permission of the file to 400 using

    chmod 400 <filename>
    

    solves the issue. As it makes the key read-only accessible to the owner.

    Ref: https://www.linux.com/training-tutorials/understanding-linux-file-permissions/

    0 讨论(0)
  • 2020-11-28 01:26

    chmod 400 /etc/ssh/* works for me.

    0 讨论(0)
提交回复
热议问题