本人在单机模式下安装的hadoop时启动需要ssh localhost,结果这个命令一直报错,在去网上搜索了许多解决办法都没有用的时候,偶然之间发现了一个自作聪明导致的问题。
就是在修改.ssh文件夹权限时,网上大家都说需要改成700,但我早就习惯777,于是就改成了777,心想777的权限肯定比700大,一定没问题,但就是这个小聪明导致了我去网上找了一大堆解决办法没用。将.ssh文件夹改成700后问题立马解决:
为什么.ssh文件夹不能用777而只能用700原因如下:
在Unix和Linux系统中,文件和目录的权限是非常重要的安全机制。对于SSH来说,尤其是
.ssh
目录和相关文件的权限设置,它们对于确保安全连接至关重要。
.ssh
目录通常包含敏感信息,如私钥和已知主机文件。如果这些文件或目录的权限设置得过于宽松,SSH客户端和服务器都会拒绝使用它们,因为这可能导致安全风险。例如,如果.ssh
目录的权限是777,这意味着任何用户都可以读取、写入和执行该目录中的文件。这是一个巨大的安全隐患,因为恶意用户或软件可能修改、读取或删除你的SSH密钥,从而获取对你的系统的非法访问。SSH要求
.ssh
目录和相关文件的权限设置必须满足特定的安全标准。通常,这些标准包括:
.ssh
目录的权限应该是700(只有所有者可以读、写和执行)。- 私钥文件(如
id_rsa
)的权限应该是600(只有所有者可以读写)。- 公钥文件(如
id_rsa.pub
)的权限可以稍微宽松一些,但通常也建议设置为644(所有者读写,组和其他用户只读)。authorized_keys
文件的权限也应该是600。当你将
.ssh
目录的权限设置为777时,SSH客户端在尝试建立连接时会检测到这些不安全的权限设置,并拒绝连接。这是为了防止潜在的安全漏洞。