百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 资源推荐 > 正文

谈谈.ssh目录的安全性(ssh为什么安全)

jasimen 2025-05-06 19:29 24 浏览

熟悉ssh的同学应该都知道.ssh目录,这个目录用来保存ssh一些客户端一些ssh配置、公钥,公钥认证的文件。~/.ssh的是一个非常重要的目录,也是安全隐患点,处理不好该目录安全设置,对导致严重安全问题,让主机被轻而易举的被人黑掉。据虫虫所知,一些木马、自动挖矿脚本就借助该目录信息自动扩散传播。本文就给大家介绍~/.ssh/的安全性。



.ssh目录介绍

目录~/.ssh/是用来存储SSH客户端和服务器一些配置文件的位置,这些文件包括:

authorized_keys,SSH服务器默认的公钥认证文件,服务器通过该文件配置可以使用该用户认证的用户证书。SSH证书认证就是客户端生成证书(私钥和公钥对),将公钥复制到该文件,每行一个证书。复制公钥时候可以使用ssh-copy-id命令或者直接手动配置authorized_keys文件即可。

id_*,包括id_rsa,id_dsa,id_ed25519,id_ecdsa等是保存在该用户下的证书私钥,用户通过SSH证书认证时候会自动搜索这些私钥进行认证。

id_*.pub 上述私钥对应的公钥,以.pub为后缀。

known_hosts 保存该主机连接过的远程服务器及其对应的主机公钥(用来对主机认证),再次连接到远程服务器如果公钥相同,则直接连接认证。如果没有,或者远程服务器有变化,会提示:

需要输入yes,确认才行。

config 文件用来配置本地ssh连接的一些项目,比如配置主机别名的,可以解决同一主机或者多台主机使用多个证书,就可以用config配置,比如下面的配置:

Host github.com

HostName github.com

User git

IdentityFile ~/.ssh/git/github_id_rsa


Host gitee.com

HostName gitee.com

User git

IdentityFile ~/.ssh/git/gitee_id_rsa


Host chongchong.com

HostName 112.34.6.71

Port 2222

User chongchong

IdentityFile ~/.ssh/id_ecdsa

ForwardX11 yes

Compression yes

TCPKeepAlive yes

前两个Host配置对github和马云使用不同的证书,后面一个Host对一台主机配置使用非默认的ssh端口、非默认当前用户以及一些启用一些ssh配置项目。关于ssh config的配置虫虫之前的文章《Linux SSH实用技巧几则》做过介绍,大家可以参考。

.ssh目录安全性问题

主要的安全隐患,还是由于对.ssh目录的安全性认识不够或者由于管理疏忽,导致该目录的权限设置有问题。或者将目录暴露在Web目录或者git公开仓库。比如有些Web服务器中的www用户可以直接访问该目录。由于直接将用户目录设置成了Web根目录,而.ssh目录又是用户目录的子目录所以可以直接访问。

现在,绝大多数的管理员和开发都知道使用密码登陆服务是不安全的,因此都会用证书登陆。如果。ssh目录泄露意味着:

可以直接获得/.ssh/id_rsa等私钥;

可以直接知道authorized_keys、known_hosts和config的内容。

证书泄露

id_*文件是最重要级别的个人文件,该文件不允许泄露给第三人,根据不同的证书类型,私钥文件名可能为了id_dsa(DSA证书已经不是安全,请避免使用),id_rsa(RSA证书,请保证2048位以上),id_ecdsa和id_ed25519,一般来说私钥文件都会PRIVATE KEY的注释行,比如:


为了避免证书泄露后也能保持安全,建议私钥都设置证书密码:

以下密钥没有密码,ssh-keygen -y -f id_ecdsa可以直接显示公钥

ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBmGXiNwudm3JaGNVERkl013/9OQVR0tfgvcmapONuecVl4EXNE4w0VyZA1ZD2s3hj02x/Y294IwfhExiaDhTyY=

如果设置密码保护,则会提示输入密码:

Enter passphrase:

ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBmGXiNwudm3JaGNVERkl013/9OQVR0tfgvcmapONuecVl4EXNE4w0VyZA1ZD2s3hj02x/Y294IwfhExiaDhTyY=

authorized_keys泄露

就算是私钥泄露来,如果没有其他信息,黑客也不知道私钥能用来连接到哪里,这就是为啥要把关键主机、一般主机以及用于管理git的证书都分别独立使用的,防止私钥泄露后导致的问题。但是黑客可以借助.ssh目录下的其他文件来获取更多的信息来精准的利用窃取的私钥。其中有个文件authorized_keys,前面我提到了,是用来配置可以连接到该主机用户下的所有的证书公钥。文件一行一个公钥,公钥以ssh-rsa,ssh-dss,ssh-ed25519,ssh-ecdsa开头,表示不同的证书类型。如果黑客获取了这些密钥,可以通过对比证书方式,验证对应私钥,然后可以利用私钥最终攻陷主机。如果攻击者成功,将会有完整SSH访问权限,能够运行任何命令。

known_hosts泄露

如果/.ssh /known_hosts泄露,则导致的危险性更大,因为该文件记录了,该主机私钥可以连接的远程主机列表。

根据该文件中的主机名或IP地址,可以直接被用来私钥来尝试登陆。很多木马传播方式就是利用自动解析该文件获取IP或者主机自动尝试登陆。

上面是一个挖矿木马自动传播部分脚本,从known_hosts获取传播目标:

cat /root/.ssh/known_hosts|grep -v ,|awk '{print $1}' > /tmp/.h

cat /root/.ssh/known_hosts|grep ,|awk -F, '{print $1}' >> /tmp/.h

cat /root/.ssh/known_hosts|grep ,|awk -F, '{print $1}' >> /tmp/.h

为了避免这种攻击,可以设置ssh配置(/etc/ssh/ssh_config)的HashKnownHosts 为yes,则会对相关信息做哈希处理。则该文件条目就会被加密,结果如下:

|1|wlPQdgFoYgYsqG6ae20lYopRLPI=|p61txQKmb+Hn49dsD+v0CNuEKd4= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzhZmG33G/3FG3vm0eDdyX1u++i0ceakIkJNgDxVVy6MpodRrpwqXXQj8/OGT

Iwb4YpRXGuL3236IkGugI9GUgFd00UNjMSMt3pqob4hKsEzADl7YfZeV1X7X0b617nze0otdO7TwDMlQ/5KWUwdUoxg50VfpieTzcOpUN/G4J159iKZ41iSF7o4vI+fYisX8y5rJ1BRbt1HO0Gi7w9HZ8tN0B

0glM6JKyoE8TjvbZAeD9PWIWp9JpG1KTY4yXTV1B1CyvtxjRqTMm8mcb+gSGGvv6mSlWCNxJnlXhp91F2GtmgzKsE3FjcMUfkn3c0+P0bKaR8L3GtbyaXJmtDX4xQ==

其中第二部分
wlPQdgFoYgYsqG6ae20lYopRLPI=为hostname加密。

第三部分p61txQKmb+Hn49dsD+v0CNuEKd4=为加密的IP地址。

加密的方法是HMAC-SHA1,而且我们知道IP地址是有限的:四段,每段1-255(2^32)可以群举,所以可以通过暴力攻击,计算哈希,对比哈希。有兴趣的同学可以尝试下。

config泄露

SSH客户端的配置文件通常包含hostname,别名,用户名,ssh端口,证书位置等信息。如果该文件暴露,可为攻击者提供更多信息,其危害类似known_hosts。

安全措施

要避免由于.ssh目录导致的安全问题,首先要设置目录和文件的权限。比如.ssh目录要设置为700,所有私钥文件和config文件要设置为600。

其次,避免将.ssh目录暴露到Web目录。

使用代理转发或ProxyJump。

在Web服务器的配置中添加特殊规则,阻止对/.ssh/目录的访问。

最后,避免.ssh配置文件,证书文件暴露到git公共仓库(github)等。

相关推荐

旭凤至死不知,明明他已经放弃和润玉争,为什么润玉还要夺位?

香蜜沉沉烬如霜中,润玉为什么要夺位呢?明明荼姚已经受到了惩罚,而旭凤,也当着他的面承诺不和他争天帝之位!按理来说,此时的润玉,应该稳坐钓鱼台,而不是大逆不道,妄想弑父夺位!可偏偏,明知道希望渺茫,润玉...

香蜜:看懂旭凤对锦觅的4次“报复”,才明白穗禾为啥那么悲惨

《香蜜沉沉烬如霜》中,锦觅在大婚之日,亲手用冰刃杀掉旭凤的名场面,让人记忆犹新。而且,旭凤还问锦觅:“你可曾爱过我”,锦觅说:“从未”二字的时候,不仅虐了旭凤,还虐了观众。这一刻,旭凤觉得全世界都塌了...

香蜜沉沉烬如霜:转世后的锦觅对旭凤未忘情,为何却要嫁进相府呢

导语:《香蜜沉沉烬如霜》这部剧进行到最后,以锦觅殒身为代价,阻止了旭凤跟润玉展开的天魔大战,也算是拯救了六界苍生。锦觅被天魔两股力量同时击中,直接就是魂飞魄散的下场,后来幸好被斗姆元君用一撮香灰保住了...

重温香蜜,明明错的是锦觅和凤凰,为什么所有人都要润玉退让?

香蜜沉沉烬如霜中,一直有这样一个问题,纵然锦觅真正喜欢的人是凤凰,可她亲自签下和润玉的婚书却是事实,婚约没有解除之前,便主动和旭凤灵修,亦是无异于将润玉的脸面放在地上踩,这样的情况,怎么看都是锦觅和旭...

香蜜沉沉烬如霜:润玉不过是爱上了未婚妻锦觅,有什么错呢?

导语:很多人认为《香蜜沉沉烬如霜》里面的润玉不是真的爱锦觅,说他对锦觅所谓的爱里,有太多利用,也有太多算计,而且润玉一定要得到锦觅,是在跟旭凤较劲,他对锦觅其实是一种执念,并非真正的爱。那么真的是这样...

再看香蜜才知,润玉并不得宠,为什么却能娶最为得宠的水神之女?

香蜜沉沉烬如霜中,众所周知,天帝最疼爱的儿子是旭凤,最偏爱的则是先花神之女,也就是现任水神之女锦觅,而最最不重视的,则是润玉这个长子,然而,谁能想到,就是在这样的情况之下,天帝却做出了将自己最偏爱的水...

锦觅至死不知,润玉已经成了天帝,为什么还要削去旭凤神籍?

润玉成天帝后削旭凤神籍,锦觅竟不知内情?真相让人心酸!润玉为何非要除掉旭凤?香蜜沉沉烬如霜背后的权力游戏天帝润玉削旭凤神籍,锦觅蒙在鼓里!兄弟反目的真相令人唏嘘香蜜沉沉烬如霜:润玉成天帝后为何要除...

《香蜜沉沉烬如霜》发糖福利 灵修夫妇人间初kiss狂撩粉

江苏卫视每晚19:30幸福剧场的《香蜜沉沉烬如霜》持续发糖,你有没有感受到?自锦觅(杨紫饰)、旭凤(邓伦饰)下凡以来,观众屡屡表示“感觉每一天都像在过节”。不仅两人“同框即发糖”的画面甜进人心底,陨丹...

旭凤至死不知,他和锦觅那一夜,为何偌大的天界竟无一丝流言传出

香蜜沉沉烬如霜中,对于自己和锦觅的关系,旭凤大概是从未想过隐藏,哪怕是自己和锦觅的那一夜,旭凤也毫无顾忌的告诉自己的母神,妄想母神能够看在锦觅有了他的骨肉的份上,放锦觅一条生路,也同意自己和锦觅在一起...

重温香蜜才发现,润玉和旭凤,锦觅其实选谁都能很幸福!

香蜜沉沉烬如霜中,大结局锦觅选择了旭凤,然而,对于这样的结局,却是无数人的意难平,难平锦觅嫁给了仇人之子,难平润玉走上了太上忘情之路,更难平最后的最后,两个上神之资的存在,却生下了一只血脉连孔雀都不如...

明明都说润玉好,为何锦觅却一心要和旭凤在一起?她,并非眼瞎

  香蜜沉沉烬如霜中,要说润玉和旭凤谁更好,无论是花界,还是水神,都更认可润玉!可是,明明都说润玉好,为何锦觅却一心要和旭凤在一起,她,真没有眼瞎吗?    不得不承认,温文如玉的润玉和冲动鲁莽的旭凤...

《香蜜》假想篇:锦觅对润玉是否爱过?如果不选旭凤,选润玉呢?

导语:每个人一生中都可能错过一些人,时而幻想,当年如果选择了他(她)如今会怎样?在电视剧《香蜜沉沉烬如霜》中,润玉对锦觅情有独钟,无视身边默默追随的邝露,多次为了锦觅无视天规,付出其实并不比旭凤少。而...

甜蜜将成往事,锦觅捅刀旭凤,期待值远超“跳诛仙台”

追江苏卫视《香蜜沉沉烬如霜》的过程中,大家除了关注锦觅与旭凤何时灵修之外,最大的期盼恐怕就是盼着葡萄什么时候向凤凰刺那致命一刀。回想当年素素跳诛仙台,惹哭多少观众。素素没了眼睛,真的以为夜华不爱她了,...

重温香蜜才发现,歹竹出不了好笋,润玉和旭凤,锦觅选谁都是悲剧

香蜜沉沉烬如霜中,因为和旭凤的爱情,锦觅失去了肉肉,失去了爹爹,失去临秀姨,更失去了眼中的万千色彩!虽然,最终两个苦命的有情人终成眷属了,但踩在堆满至亲之人尸骨之上的爱情,真的有那么美好吗?其实所有人...

同样是喜欢锦觅,为何旭凤润玉敢娶她,噗嗤君却不敢迎娶锦觅

文-黑狸狸在电视剧《香蜜沉沉烬如霜》中,旭凤、润玉和噗嗤君都喜欢锦觅,为什么旭凤、润玉敢娶锦觅,噗嗤君却不敢?①旭凤旭凤敢娶锦觅,有三重原因。一来是他认为他和锦觅相互爱慕,他不想错过这段美好的姻缘。所...