大家在 debian/ubuntu 下如何管理 ssh 密码

2014-09-20 10:00:05 +08:00
 yylzcom
我现在用密钥管理软件的是keepassX,terminal用的是tilda(看重的是全局F2呼出和透明效果)

但是现在问题就来了,因为是随机生成的密码记不住,不能很方便地在keepassX里连接ssh,每次都要从keepassX里复制然后到tilda里粘贴....

用private key免密码登陆,安全性是一个问题...

难道要写个脚本,然后用keepassX的cmd命令传递ssh用户名和密码到tilda里?

大家有没有更好的办法?
8865 次点击
所在节点    Linux
100 条回复
aku
2014-09-20 15:37:43 +08:00
我觉得还是弄成两步登陆安全,并且防止暴力破解
不知道有没有好的方案?
ctexlive
2014-09-20 15:40:34 +08:00
@Radeon 难不成你每次登录ssh后就修改ssh密码不成?如果不是,请问随机在哪里?
Radeon
2014-09-20 15:41:54 +08:00
@aku 你两步登录,第一步用跳板账号登录的时候如果用.ssh下的私钥方案,一样会被泄漏。然后光是跳板账号就有很多r权限,已经算被半个攻陷了
kafkakevin
2014-09-20 15:43:27 +08:00
@Radeon 我登陆shell的用户跟ssh服务的用户根本不是一个用户,用户A能读只有用户B才能读得文件? 怀疑。 你说的继承那个我听不懂。
Radeon
2014-09-20 15:47:21 +08:00
@ctexlive 我不需要随机密码来保护我。我只要密码足够长然后每次手动输入就行了。这和用~/.ssh/秘钥的本质区别在于我的硬盘上没有长期保存的秘钥等着别人来拷走。我每次手动输入,如果没有key logger和shell history的话密码只存在ssh的进程里,会话结束就消失了
Radeon
2014-09-20 15:49:38 +08:00
@kafkakevin 假设你的机子上有个第三方程序,你启动它不就给了它的进程你的uid?这样你能读你的~目录,这个进程也能读。很明白吧?
ctexlive
2014-09-20 15:51:29 +08:00
@aku 如果真要担心密钥本地被读取,给密钥加密码已经非常安全了即便密钥泄露也是需要暴力破解才行,实在不行还可以用硬件密钥(如密钥优盘)。真不懂@Raden说的 直接用口令登录ssh服务器安全在哪里。
Radeon
2014-09-20 15:54:27 +08:00
@ctexlive 给密码加密码只不过是增加密码链条长度,很多情况下是无意义的。口令的好处我再说一遍,在于没有持久化在硬盘上的可供破解的东西。在其他条件都相同的情况下,当然不给你的敌人任何可破解的原始材料更安全
ctexlive
2014-09-20 15:55:13 +08:00
@Radeon 你根本就没搞清楚为什么用口令直接登录ssh不安全在哪里。(什么通过口令长度来防止中间人攻击,这是开玩笑吧?)。你能给ssh服务器加长口令,为什么不能给本地密钥增加长口令?即便被考走也得暴力破解。
ctexlive
2014-09-20 15:56:24 +08:00
@Radeon 拜托,给密钥加密码“不是给密码加密码”!!不是一回事好吗?你到底用过没?
ttimasdf
2014-09-20 15:57:26 +08:00
@Radeon 用keepass管理随机生成的长密码,keepass数据库用one time pass加密。长密码加密ssh私钥。公网与内网用两套公私钥。
程序可信这个不好做到,但是我觉得最不可信的只有zsh的说

这套方案如果有什么缺陷请告诉我,因为我自签发的证书也这么管理的=v=
ttimasdf
2014-09-20 16:00:05 +08:00
@ctexlive 顺便问一下,如果用密码而不通过私钥直接登录ssh,密码会被中间人截获吗?(只是懒得查了=v=)
Radeon
2014-09-20 16:00:34 +08:00
@ctexlive 我没说通过口令长度来防止中间人攻击。我说口令长度足够长就行了。用口令本身也是防止中间人攻击的,所有的验证算法都要用到密钥exchange/Agreement算法,是安全的,所以请不要扯什么中间人攻击这回事
Radeon
2014-09-20 16:01:47 +08:00
@ttimasdf 就ssh来说用密码当然可以防中间人攻击
ctexlive
2014-09-20 16:01:53 +08:00
@Radeon 网络上的中间人攻击远比物理本地接触你电脑再破解难度低多了(严谨的服务商都会禁止直接用口令登录)。物理隔绝也远远比网络防护简单多了。真不知道你为什么独独对没有客户端服务端验证的口令那么有信心。
ctexlive
2014-09-20 16:04:46 +08:00
@ttimasdf 用口令主要不是为了直接劫获明文密码,而是防止中间人攻击。比如你登录ssh服务器时用口令不会验证对方身份,真实服务器也不会验证客户端的身份,于是就被中间人登录服务器了。
Radeon
2014-09-20 16:05:03 +08:00
@ctexlive 我再说一遍ssh本身是防止中间人攻击的,输密码的也是!你怎么老是要说中间人攻击呢?
ctexlive
2014-09-20 16:07:40 +08:00
@ttimasdf 上面第二句话应该是(而是为了中间人攻击)。
Radeon
2014-09-20 16:09:04 +08:00
@ctexlive 你第一次登录真实主机的时候ssh会记录下它的公钥,之后你假如被DNS劫持,中间人服务器由于没有主机的私钥是不能和你记录下来的公钥匹配的,你会得到报警!

但是这是验证对方主机身份,和你用临时输入的密码还是~/.ssh/来提供你的身份证明没有关系
Radeon
2014-09-20 16:17:00 +08:00
@ttimasdf 你的系统的安全依赖于Keep Pass这类Keychain程序的安全性。恶意程序可以先拷走你的Keep Pass数据库和~/.ssh/(因为它的进程有你的uid),然后等Keep Pass出安全漏洞他好本地加速破解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/134601

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX