SSH 使用密钥登录并禁止口令登录实践

2015-07-07 13:38:53 +08:00
 wsgzao


## 前言
无论是个人的VPS还是企业允许公网访问的服务器,如果开放22端口的SSH密码登录验证方式,被众多黑客暴力猜解捅破菊花也可能是经常发生的惨剧。企业可以通过防火墙来做限制,普通用户也可能借助修改22端口和强化弱口令等方式防护,但目前相对安全和简单的方案则是让SSH使用密钥登录并禁止口令登录。

>这是最相对安全的登录管理方式

---

## 更新历史

2015年07月07日 - 初稿

阅读原文 - http://wsgzao.github.io/post/ssh/

扩展阅读

- SSH原理与运用 - http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
- Linode - https://www.linode.com/docs/networking/ssh/use-public-key-authentication-with-ssh
6324 次点击
所在节点    程序员
34 条回复
realpg
2015-07-07 13:43:47 +08:00
技术安全性上用私钥登陆确实安全性比较高
但是实际场景下,秘钥登陆可能更坑,除非你自己维护就你自己登陆就你自己使用。一个保管不当的秘钥的危害性更大。
所以一般我都是禁用私钥登陆强制口令登陆的
onemoo
2015-07-07 14:06:01 +08:00
@realpg 那得保管的多差才能私钥和passphrase一起泄露。如果真的是这么差劲的话,恐怕密码泄露会更容易。
finian
2015-07-07 14:07:58 +08:00
@realpg 可以给密钥加 passphrase
szopen
2015-07-07 14:50:03 +08:00
我在考虑一个问题,就是当只能用私钥登录时, 密钥没备份,但是电脑坏了怎么办?
mongodb
2015-07-07 15:00:04 +08:00
@szopen 没备份这个不能怪别人只能怪自己..
ryd994
2015-07-07 15:04:17 +08:00
@szopen 加两个私钥,一个常用一个放u盘应急
cloverstd
2015-07-07 15:11:00 +08:00
@szopen 放在网盘或者邮箱
Tink
2015-07-07 15:17:20 +08:00
@szopen 不备份也敢禁用口令登陆?
szopen
2015-07-07 15:29:04 +08:00
林子大了什么情况都能发生
maxsec
2015-07-07 15:33:03 +08:00
楼主敢不敢放一个微信扫描terminal输出的二维码登录ssh的linux组件
johnsmith123
2015-07-07 15:40:25 +08:00
这些和1+1=2 没啥区别(废话)
AssassinLOVE
2015-07-07 15:45:16 +08:00
这是新发明?
abv
2015-07-07 15:52:13 +08:00
一直用私钥登录,不然每次得输入密码,就是机器变了的话很头疼
clino
2015-07-07 15:54:24 +08:00
@szopen 没备份跟忘记密码是一样的下场
whattheh3ll
2015-07-07 15:55:37 +08:00
我都是禁用 root 登入,其他账号开两步验证。
nozama
2015-07-07 16:18:33 +08:00
万一私钥泄漏, 危及范围就有点广了.
我的办法是:
0. 在iCloudDrive保存一个文件.
1. 每次要用密码, 就用md5 filename生成密码
2. 用这个密码登录.
这样就算iCloud泄漏了, 一般也没人知道我是这样生成密码的...
wsgzao
2015-07-07 16:31:24 +08:00
@nozama 私钥一般加passphrase,不用太担心私钥泄露
Tink
2015-07-07 16:32:41 +08:00
@maxsec 好像很不错的主意,偶试试看
airyland
2015-07-07 16:41:07 +08:00
@Tink 期待一下~
wsgzao
2015-07-07 16:42:37 +08:00
@maxsec 这个方法不错

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

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

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

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

© 2021 V2EX