如题,题主对网络攻防完全外行,只是从日常使用中感觉是这样。
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
zhzy0077 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 4
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
q1angch0u 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
ospider 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
theChampion 2022-08-19 18:25:27 +08:00
不安全,user 用户安装的软件,绝大多数的所有者都是 user 本身,这意味着软件想要访问家目录下的.ssh 文件夹不会有任何权限问题。所以私钥一定要设置密码,并且不要运行来历不明的软件。
|
39
fuzzsh 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 2
在讨论安全的时候,是要有一些假设的。把私钥存储在 ~/.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 286 天前
@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); } |