
如题,题主对网络攻防完全外行,只是从日常使用中感觉是这样。
1 gtgc2005 2022-08-19 10:52:03 +08:00 日常不建议用 root 用户操作,非 root 权限无法操作 /root 目录 |
2 haozi1986 2022-08-19 10:52:52 +08:00 难道你没设置文件权限?…… |
3 jurassic2long OP |
4 leavic 2022-08-19 11:02:56 +08:00 安全的是可以防止弱密码,如果 key 随便丢,那和用 123456 做密码一样。 |
5 jurassic2long OP @leavic 不是随便丢,就是再它原来的位置,只是觉得什么软件都能去读它。 |
6 liuxey 2022-08-19 11:06:11 +08:00 是这样子的,自从给.ssh 文件夹上了监控,发现不少软件会读这个文件夹。 |
7 zhzy077 2022-08-19 11:06:26 +08:00 1. 私钥是可以上密码的 2. 密码验证会被中间人,密钥不会 3. 2048 bit 的 RSA 密钥*大概*相当于 log64(2^2048) = 341 长度的随机密码 |
8 jurassic2long OP 如果我是攻击者,我会写个有点用又看起来人畜无害的小程序,然后悄悄去扫~/.ssh 再进一步说,xshell 、putty 等类似的软件是不是掌握了巨量的密码、密钥,想想就不太安全 |
9 yfugibr 2022-08-19 11:08:21 +08:00 via Android ssh 密钥是可以设置密码也推荐设置密码的。 我理解 ssh 密钥是为了增强安全性(防止直接爆破服务器),而不是简化操作(无密码登录,如果可以保证本地设备安全的话,确实可以这么干) |
10 jurassic2long OP @zhzy0077 确实,我一直用无密码的密钥,都忘记可以上密码这茬了,感觉这个习惯不好。。 |
11 jurassic2long OP @yfugibr 嗯嗯 这么理解感觉就通顺了 |
12 singerll 2022-08-19 11:21:19 +08:00 via Android 说他安全主要是说的服务端,没说客户端比较安全。 |
14 Felldeadbird 2022-08-19 11:57:00 +08:00 我认为这么理解。 1. 你有私钥,你登录目标服务器,只有你可以登录。 2.你登录后,在服务器乱装软,软件权限还给得很高。软件把服务器 IP 和~/.ssh 的密钥搞下来了。 3. 你私钥泄露了。任何人都可以访问了。 |
15 momocraft 2022-08-19 12:13:34 +08:00 不要执行你不相信的软件 |
16 AoEiuV020CN 2022-08-19 12:21:48 +08:00 正常.ssh 放的不是当前 linux 的登录私钥, linux 桌面用户少,.ssh 存放了服务器私钥的 linux 桌面用户更少,在这基础上还乱运行闭源未知软件的用户就更更少了, 楼主说的确实有可能,但考虑用户量,就算真有人开发针对这些人病毒木马,感觉也未必能收回成本, |
17 wtsamuel 2022-08-19 12:30:20 +08:00 你不信任的软件就应该丢进虚拟机里 |
18 estk 2022-08-19 12:49:35 +08:00 任意路径不都是强制 chmod 600 才允许使用吗? |
19 luxor 2022-08-19 12:58:46 +08:00 authorized_keys 是公钥 |
20 nightwitch 2022-08-19 13:04:49 +08:00 服务端~/.ssh 不会放私钥,只会放公钥。 如果你说的是自己桌面端~/.ssh 的私钥,ssh 提供加密的功能。 |
21 ryanbuu 2022-08-19 13:04:50 +08:00 authorized_keys 放的是可以用来登录的私钥对应的公钥,泄漏其实也无妨,况且目录和文件都是 0600 权限的 |
22 tool2d 2022-08-19 13:11:22 +08:00 “不用 root ,有权限,但是用户自身的账号权限也能读取呀;” 我看了一眼服务器,并不是。 .ssh 目录默认只能 root 用户自己读取,除非你改过授权了。 |
23 heyjei 2022-08-19 13:14:19 +08:00 @jurassic2long 是的,很早之前百度有一个软件中心,专门提供各种软件的下载,就和 360 软件库一样。然后他里面的 Putty 就被加了木马,所有使用过这个版本 putty 的用户,登陆信息全被上传到一个服务器。 事发后,rj.baidu.com 这个域名直接被取消解析。百度软件中心这个产品一夜之间被砍。 |
24 4BVL25L90W260T9U 2022-08-19 13:15:38 +08:00 前两天不是刚有个讨论 chrome 在本地明文存储密码的?本地明文才是常态啊…… |
25 xzysaber 2022-08-19 13:16:35 +08:00 你确定那是私钥吗? |
26 felixcode 2022-08-19 13:23:32 +08:00 via Android 你不知道 chmod 600 设置权限吗? |
28 mangoDB 2022-08-19 13:47:50 +08:00 目录权限 |
29 forbreak 2022-08-19 14:01:25 +08:00 你.ssh 目录都被人 copy 走了。那你还谈什么安全? 安全是防中间过程。 |
30 yohn89 2022-08-19 14:27:50 +08:00 你把车钥匙锁在你家保险箱里面,你的保险箱被小偷进来偷走了,然后你说车钥匙不安全? |
31 duanxianze 2022-08-19 14:40:07 +08:00 你对安全的理解有错误,能接触到物理实机的情况下大多数安全措施都没意义了,防的是网络攻击 |
32 nu11ptr 2022-08-19 15:26:20 +08:00 ~/.ssh 下的私钥如果不是 600 权限,会报错 确实相同用户权限就能访问,最好在创建密钥时额外设置密码 |
33 ch2 2022-08-19 17:00:17 +08:00 有了你的私钥,知道你这个私钥能在哪用吗 |
34 bleaker 2022-08-19 17:03:22 +08:00 黑客知道了我的私钥,可以 ssh 到我电脑上帮我修 bug 吗。。 |
35 halberd 2022-08-19 18:15:13 +08:00 私钥加 passphrase 如果嫌每次都要输 passphrase 麻烦,可以用 ssh-agent 记住密码,这样唯一风险在于被读 ssh-agent 的内存,但那就需要 root 权限了。 |
36 GHvyuR7N 2022-08-19 18:21:37 +08:00 via iPhone 密钥登录普通账户,想 sudo 提权老老实实输入密码... |
37 wonderfulcxm 2022-08-19 18:24:00 +08:00 via iPhone 安全是相对的,跟别的普通文件区别不过是权限限定 600 ,只能保证其他用户无法读写,无法保证以你身份执行应用的扫描。 不过 mac 好像有个功能,应用要读写某个目录,会弹出一个提示问是否允许。 |
38 yp965FjL630VP3s2 2022-08-19 18:25:27 +08:00 不安全,user 用户安装的软件,绝大多数的所有者都是 user 本身,这意味着软件想要访问家目录下的.ssh 文件夹不会有任何权限问题。所以私钥一定要设置密码,并且不要运行来历不明的软件。 |
39 pingdog 2022-08-19 19:01:33 +08:00 via Android DAC 限制不到,要上 MAC 级别的功能 可以买商业解决方案 也可以用 NSA 开发及众多组织和个人参与贡献在 kernel 的 selinux 我为什么要强调 NSA ?因为遇到很多一听到这个缩写都是闻风丧胆,需求立马砍掉或购买商业解决方案 selinux 建议吃透概念并自行配置,CTRL C V 大概率会导致服务器失联 |
40 panzhc 2022-08-20 10:53:47 +08:00 很多人都没有看懂 OP 的问题,其实我也一直有一样的担心,目前想到的办法也就是: 1. 给密钥加密码; 2. 服务器 2FA ; 3. 目前主要用 Linux 办公,常用软件都是开源的,没有 XX ,涉及到各种 IM 软件都在 Mac 上; 4. 做个虚拟机或者其他机器当作跳板,key 放在跳板上。 |
41 panzhc 2022-08-20 10:56:25 +08:00 另外,有段时间还给服务器设置了登录通知,也可以记录到数据库,但是通知太多就没怎么看了。 |
42 endle 2022-08-21 04:05:26 +08:00 在讨论安全的时候,是要有一些假设的。把私钥存储在 ~/.ssh 下,要假设本机是安全的。 如果你怀疑你当前使用的机器已经被挂了木马或是恶意软件,~/.ssh 被未经你允许的软件读取了,那无论是用密码还是密钥对登录,都是不安全的行为。 |
43 julyclyde 2022-08-22 13:41:28 +08:00 能读.ssh 目录的程序,不是以你自己的身份,就是以更高的 root 身份运行的 谁运行谁负责 |
44 justaname 2023-01-03 17:29:01 +08:00 @panzhc 感觉强密码就够了吧,让 ssh-agent 记住密码的话也只需要输入一次,普通程序能读取 ssh-agent 的内部信息的话整个安全体系就已经形同虚设了吧 |
45 liuidetmks 2024-03-11 19:15:28 +08:00 @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); } |
46 dilidilid 250 天前 @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 帮它签名从而完成鉴权过程,不然这个机制不成了脱裤子放屁了吗 |
47 dilidilid 250 天前 @liuidetmks 看起来你的这个程序只是 print 出来了 identity 里面的 comment ,不是 key 本身呀 |