如题,题主对网络攻防完全外行,只是从日常使用中感觉是这样。
如题,题主对网络攻防完全外行,只是从日常使用中感觉是这样。
|
gtgc2005Aug 19, 2022
1
日常不建议用 root 用户操作,非 root 权限无法操作 /root 目录
|
|
haozi1986Aug 19, 2022
2
难道你没设置文件权限?……
|
|
3
|
|
leavicAug 19, 2022
4
安全的是可以防止弱密码,如果 key 随便丢,那和用 123456 做密码一样。
|
|
5
@leavic 不是随便丢,就是再它原来的位置,只是觉得什么软件都能去读它。
|
|
auinAug 19, 2022
6
是这样子的,自从给.ssh 文件夹上了监控,发现不少软件会读这个文件夹。
|
|
zhzy0077Aug 19, 2022
7
1. 私钥是可以上密码的
2. 密码验证会被中间人,密钥不会 3. 2048 bit 的 RSA 密钥*大概*相当于 log64(2^2048) = 341 长度的随机密码 |
|
8
如果我是攻击者,我会写个有点用又看起来人畜无害的小程序,然后悄悄去扫~/.ssh
再进一步说,xshell 、putty 等类似的软件是不是掌握了巨量的密码、密钥,想想就不太安全 |
|
9
ssh 密钥是可以设置密码也推荐设置密码的。
我理解 ssh 密钥是为了增强安全性(防止直接爆破服务器),而不是简化操作(无密码登录,如果可以保证本地设备安全的话,确实可以这么干) |
|
10
@zhzy0077 确实,我一直用无密码的密钥,都忘记可以上密码这茬了,感觉这个习惯不好。。
|
|
11
@yfugibr 嗯嗯 这么理解感觉就通顺了
|
|
singerllAug 19, 2022 via Android
12
说他安全主要是说的服务端,没说客户端比较安全。
|
|
FelldeadbirdAug 19, 2022
14
我认为这么理解。
1. 你有私钥,你登录目标服务器,只有你可以登录。 2.你登录后,在服务器乱装软件,软件权限还给得很高。软件把服务器 IP 和~/.ssh 的密钥搞下来了。 3. 你私钥泄露了。任何人都可以访问了。 |
|
momocraftAug 19, 2022
15
不要执行你不相信的软件
|
|
AoEiuV020CNAug 19, 2022
16
正常.ssh 放的不是当前 linux 的登录私钥,
linux 桌面用户少,.ssh 存放了服务器私钥的 linux 桌面用户更少,在这基础上还乱运行闭源未知软件的用户就更更少了, 楼主说的确实有可能,但考虑用户量,就算真有人开发针对这些人病毒木马,感觉也未必能收回成本, |
|
wtsamuelAug 19, 2022
17
你不信任的软件就应该丢进虚拟机里
|
|
estkAug 19, 2022
18
任意路径不都是强制 chmod 600 才允许使用吗?
|
|
luxorAug 19, 2022
19
authorized_keys 是公钥
|
|
nightwitchAug 19, 2022
20
服务端~/.ssh 不会放私钥,只会放公钥。
如果你说的是自己桌面端~/.ssh 的私钥,ssh 提供加密的功能。 |
|
runoAug 19, 2022
21
authorized_keys 放的是可以用来登录的私钥对应的公钥,泄漏其实也无妨,况且目录和文件都是 0600 权限的
|
|
tool2dAug 19, 2022
22
“不用 root ,有权限,但是用户自身的账号权限也能读取呀;”
我看了一眼服务器,并不是。 .ssh 目录默认只能 root 用户自己读取,除非你改过授权了。 |
|
23
@jurassic2long 是的,很早之前百度有一个软件中心,专门提供各种软件的下载,就和 360 软件库一样。然后他里面的 Putty 就被加了木马,所有使用过这个版本 putty 的用户,登陆信息全被上传到一个服务器。
事发后,rj.baidu.com 这个域名直接被取消解析。百度软件中心这个产品一夜之间被砍。 |
|
4BVL25L90W260T9UAug 19, 2022
24
前两天不是刚有个讨论 chrome 在本地明文存储密码的?本地明文才是常态啊……
|
|
xzysaberAug 19, 2022
25
你确定那是私钥吗?
|
|
26
你不知道 chmod 600 设置权限吗?
|
|
mangoDBAug 19, 2022
28
目录权限
|
|
forbreakAug 19, 2022
29
你.ssh 目录都被人 copy 走了。那你还谈什么安全? 安全是防中间过程。
|
|
yohn89Aug 19, 2022
30
你把车钥匙锁在你家保险箱里面,你的保险箱被小偷进来偷走了,然后你说车钥匙不安全?
|
|
duanxianzeAug 19, 2022
31
你对安全的理解有错误,能接触到物理实机的情况下大多数安全措施都没意义了,防的是网络攻击
|
|
nu11ptrAug 19, 2022
32
~/.ssh 下的私钥如果不是 600 权限,会报错
确实相同用户权限就能访问,最好在创建密钥时额外设置密码 |
|
ch2Aug 19, 2022
33
有了你的私钥,知道你这个私钥能在哪用吗
|
|
bleakerAug 19, 2022
34
黑客知道了我的私钥,可以 ssh 到我电脑上帮我修 bug 吗。。
|
|
halberdAug 19, 2022
35
私钥加 passphrase
如果嫌每次都要输 passphrase 麻烦,可以用 ssh-agent 记住密码,这样唯一风险在于被读 ssh-agent 的内存,但那就需要 root 权限了。 |
|
GHvyuR7NAug 19, 2022 via iPhone
36
密钥登录普通账户,想 sudo 提权老老实实输入密码...
|
|
wonderfulcxmAug 19, 2022 via iPhone
37
安全是相对的,跟别的普通文件区别不过是权限限定 600 ,只能保证其他用户无法读写,无法保证以你身份执行应用的扫描。
不过 mac 好像有个功能,应用要读写某个目录,会弹出一个提示问是否允许。 |
|
yp965FjL630VP3s2Aug 19, 2022
38
不安全,user 用户安装的软件,绝大多数的所有者都是 user 本身,这意味着软件想要访问家目录下的.ssh 文件夹不会有任何权限问题。所以私钥一定要设置密码,并且不要运行来历不明的软件。
|
|
pingdogAug 19, 2022 via Android
39
DAC 限制不到,要上 MAC 级别的功能
可以买商业解决方案 也可以用 NSA 开发及众多组织和个人参与贡献在 kernel 的 selinux 🌚 我为什么要强调 NSA ?因为遇到很多一听到这个缩写都是闻风丧胆,需求立马砍掉或购买商业解决方案 selinux 建议吃透概念并自行配置,CTRL C V 大概率会导致服务器失联 |
|
panzhcAug 20, 2022
40
很多人都没有看懂 OP 的问题,其实我也一直有一样的担心,目前想到的办法也就是:
1. 给密钥加密码; 2. 服务器 2FA ; 3. 目前主要用 Linux 办公,常用软件都是开源的,没有 XX ,涉及到各种 IM 软件都在 Mac 上; 4. 做个虚拟机或者其他机器当作跳板,key 放在跳板上。 |
|
panzhcAug 20, 2022
41
另外,有段时间还给服务器设置了登录通知,也可以记录到数据库,但是通知太多就没怎么看了。
|
|
42
在讨论安全的时候,是要有一些假设的。把私钥存储在 ~/.ssh 下,要假设本机是安全的。
如果你怀疑你当前使用的机器已经被挂了木马或是恶意软件,~/.ssh 被未经你允许的软件读取了,那无论是用密码还是密钥对登录,都是不安全的行为。 |
|
julyclydeAug 22, 2022
43
能读.ssh 目录的程序,不是以你自己的身份,就是以更高的 root 身份运行的
谁运行谁负责 |
|
justanameJan 3, 2023
44
@panzhc 感觉强密码就够了吧,让 ssh-agent 记住密码的话也只需要输入一次,普通程序能读取 ssh-agent 的内部信息的话整个安全体系就已经形同虚设了吧
|
|
liuidetmksMar 11, 2024
45
@justaname 普通程序就是能读取 ssh-agent 啊, 不然 git 是怎么读取的,用 gpt 问了下,直接就能遍历私钥,只是比读取文件稍微多了一些代码
// 遍历私钥 LIBSSH2_AGENT_PUBLICKEY* identity; while ((identity = libssh2_agent_get_identity(identities, 0)) != NULL) { // 在这里可以使用 identity 中的信息,如 identity->comment 和 identity->blob // 例如,你可以打印私钥的注释信息 printf("Private Key Comment: %s\n", identity->comment); } |
|
dilidilidApr 12, 2025
46
@liuidetmks
这是 GPT 的回答 Yes — common programs without sudo can read SSH private keys from ssh-agent, but not the private keys themselves — instead, they get access to the ability to sign on your behalf via the agent. ❌ What they cannot do: • Extract or dump the actual private key. • Access the agent from another user (unless you explicitly share the agent socket via file permissions — not recommended). ssh-agent 是不可能直接暴露私钥给普通程序的,程序只能请求 agent 帮它签名从而完成鉴权过程,不然这个机制不成了脱裤子放屁了吗 |
|
dilidilidApr 12, 2025
47
@liuidetmks 看起来你的这个程序只是 print 出来了 identity 里面的 comment ,不是 key 本身呀
|