SSH 密钥权限 chmod 设置?

SSH 密钥权限 chmod 设置?

我需要在我的机器上使用 SSH 来访问我的网站及其数据库(设置一个符号链接 - 但我离题了)。

出现以下问题

我输入命令:

ssh-keygen -t dsa

生成公共/私有 dsa 密钥对。我将其保存为默认值 ( /home/user/.ssh/id_dsa) 并输入两次 Enter passphrase。

然后我得到这个:

WARNING: UNPROTECTED PRIVATE KEY FILE!  
Permissions 0755 for '/home/etc.ssh/id_rsa' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: [then the FILE PATH in VAR/LIB/SOMEWHERE]

现在为了解决这个问题,我尝试了

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

但不久后我的电脑死机了,重新登录时出现了一个could not find .ICEauthority error.

我解决了这个问题并删除了 SSH 文件,但希望能够使用正确的权限来避免将来出现这些问题。

我应该如何设置 ICEauthority,或者我应该在哪里保存 SSH 密钥,或者它们应该拥有什么权限?使用虚拟机是最好的吗?

这都是非常新的,我正处于一个非常陡峭的学习曲线上,所以任何帮助都很感激。

答案1

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(即chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) 是正确的。

chmod 644 ~/.ssh/id_rsa.pub(ie chmod a=r,u+w ~/.ssh/id_rsa.pub) 也是正确的,但chmod 644 ~/.ssh/id_rsa(ie chmod a=r,u+w ~/.ssh/id_rsa) 则不然。你的公钥可以是公开的,重要的是你的私钥是私有的。

此外,您的.ssh目录本身必须只能由您写入:chmod 700 ~/.sshchmod u=rwx,go= ~/.ssh。您当然需要能够读取它并访问其中的文件(执行权限)。如果其他人可以阅读它,它不会直接有害,但也没有什么用处。

你不需要sudo。不要用来sudo操作您自己的文件,这只会导致错误。

该错误与您显示的命令.ICEauthority无关。chmod要么是巧合,要么您运行了一些未向我们展示的其他命令。

答案2

    # Set public/private key permissions

    # Octal form
    chmod 600 ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa.pub

    # Equivalent literal form
    chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub

    # Optional: make public key readable
    chmod 644 ~/.ssh/id_rsa.pub # chmod a=r,u+w ~/.ssh/id_rsa.pub

    # Set directory permissions
    chmod 700 ~/.ssh # chmod u=rwx,go= ~/.ssh

    # Legend for literal form
    # +: allow       -: deny         =: reset and allow
    # u: user        r: read
    # g: group       w: write
    # o: others      x: execute
    # a: all

相关内容