我需要在我的机器上使用 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 ~/.ssh
或chmod 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