我需要在计算机上使用SSH来访问我的网站及其数据库(建立符号链接,但我离题了)。
遇到问题
我输入命令:
ssh-keygen -t dsa

生成公用/专用dsa密钥对。我将其保存在默认设置(/home/user/.ssh/id_dsa)中,然后输入两次Enter passphrase。
然后我得到以下信息: >但是在我的计算机冻结之后不久,重新登录时出现了could not find .ICEauthority error
我遇到了这个问题,并删除了SSH文件,但希望能够使用正确的权限来避免将来出现这些问题。
我应该如何设置ICEauthority,或者应该在哪里保存SSH密钥-或它们应该具有什么权限?最好使用虚拟机吗?
这是非常新的东西,我的学习曲线非常陡峭,因此可以得到任何帮助。

评论

错别字-抱歉,只生成了一组密钥!

.ssh目录的权限与关键权限同等重要。应该是600。要解决此问题,请运行:chmod -R 600〜/ .ssh。

实际上.ssh目录权限需要为700而不是600。执行权限是使您可以访问该目录中内容的权限。因此正确的命令应该是chmod 700 $ HOME / .ssh和chmod 600 $ HOME / .ssh / id_rsa

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

#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(即chmod a=r,u+w ~/.ssh/id_rsa.pub)也是正确的,但chmod 644 ~/.ssh/id_rsa(即chmod a=r,u+w ~/.ssh/id_rsa)则不正确。您的公共密钥可以是公共的,重要的是您的私有密钥是私有的。

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

您不需要sudo。不要使用sudo来处理自己的文件,这只会导致错误。

关于.ICEauthority的错误与您显示的chmod命令无关。这是一个巧合,还是您运行了其他一些没有显示给我们的命令。

评论


〜/ .ssh / known_hosts的权限需要是什么?

– Nikc
18年1月24日在16:24

我想在上面的答案中加上我的主目录(〜/)也需要具有755权限,而不管〜/ .ssh及其中文件的权限如何。 (这是在Synology NAS上,可能不适用于所有Linux)

– hoelk
18年5月30日在18:30

@terdon:那么,您是说我们应该接受Scrooge McDuck的建议编辑吗?那吉勒斯应该凌驾于我们之上并接受它? (请注意,其中包含错误。)

– G-Man说“恢复莫妮卡”
20年6月23日在1:59



@ G-ManSays'ReinstateMonica'我很傻地说我的编辑不能提高可读性;如果不是这样,论文将仅包含内联方程。另一方面,我无法理解一个极其简单且正确突出显示的表来解释如何读取这些chmod会显得多余。如果是这样,那么为什么要首先发布命令,而又不能始终将用户指向bash脚本。

– Scrooge McDuck
20年6月28日在4:12

就是说,我只是出于非常实际的原因希望显示我的答案:人们一直问我如何始终启用ssh,他们发现非常讨厌从Gilles的答案中复制粘贴许多内联命令,他们通常会这样做。很难理解和记住。我不在乎您是否认为此答案是改进版本还是全新的答案,我只关心在此重定向的人员(包括我本人)以最有效的方式回答他们的问题。

– Scrooge McDuck
20-6-28在4:22

#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
    # u: user        r: read
    # g: group       w: write
    # o: others      x: execute