SSH 安全登陆疑问

2014-11-05 21:56:50 +08:00
 hzqim
看了主机的记录,还真是有不少暴力破解的痕迹,准备改端口,禁止ROOT用户登陆,采用密匙验证,三管齐下。

爬了一些文章,还是有一些疑问,特向各位请教,请不吝赐教。

1、为了方便,多台服务器只想保存一个私匙,那么密匙对能否在不同的主机重复使用,安全性会降低?
2、普通用户登陆后通过su切换到ROOT账号进行系统管理?

谢谢解答!
3388 次点击
所在节点    问与答
27 条回复
likuku
2014-11-05 22:17:06 +08:00
改端口没必要,禁止root登录,这最起码,最基本的吧,默认sshd_config 就这配置吧。
禁止密码认证,仅许可密钥认证,禁用PAM。

1.可以,密钥对可以在不同主机重复用,不过,建议使用 ForwardAgent,这样只需要最初发起登录的机器上有密钥即可。
2.请使用 sudo 这个软件(这年头了,竟然有人不知道sudo),如此只有被授权的用户才可以直接使用自身帐密通过sudo su 来获得root权限 + 禁止非root用户使用 su
hzqim
2014-11-05 22:42:07 +08:00
@likuku PAM是什么用途,第一次听到。
普通用户默认就可以su root吧,怎么禁止?
babytomas
2014-11-05 22:42:51 +08:00
1、和安全性降低没关系
2、sudo -i
huawuya
2014-11-05 22:54:39 +08:00
没有改端口和禁止root,装了fail2ban来处理的,密码长一些,复杂一些,应该也够用了
hzqim
2014-11-05 23:02:08 +08:00
@babytomas
@huawuya
@likuku
谢谢解答!
Showfom
2014-11-05 23:04:06 +08:00
@likuku 默认 sshd 配置就支持 root 登陆啊 我装过那么多台服务器了。。。
billlee
2014-11-05 23:06:18 +08:00
密钥对的使用原则是一个客户端生成一对密钥,和服务器数量没关。原因是上传到服务器上的公钥是可以公开的,但私钥要严格控制。
ryd994
2014-11-06 07:57:35 +08:00
只要私钥不丢,一切好说。
likuku
2014-11-06 08:32:44 +08:00
@Showfom freebsd的sshd默认是禁止root登陆。gentoo和debian貌似也是。
SharkIng
2014-11-06 08:46:53 +08:00
@Showfom
@likuku

Ubuntu下默认不是禁止的,Debian好像也不是,必须要设置一下才行,在sshd里面修改root登录为 No

正常系统都不是直接禁止的吧?FreeBSD没用过不知道


@hzqim
用sudo就可以了,没不要su

另外不是很建议很多服务器用一个密钥,虽然方便但是也的确存在某种让人不舒服的隐患
Showfom
2014-11-06 08:50:30 +08:00
@likuku CentOS 这货直接就让你设置 root 密码了
hzqim
2014-11-06 09:19:04 +08:00
@likuku 在sshd_config 设置UsePAM no好像没有什么差别啊,开启密码登录还是可以验证登陆,所以问问兄台,在这里设置yes和no有什么区别?
likuku
2014-11-06 09:39:01 +08:00
@hzqim 假若只是禁止了 password 认证,PAM 开启的话,一样可以用帐密登录,虽然背后不是用帐密,而是用 interActiveKeyBoard 认证...。
hzqim
2014-11-06 09:40:05 +08:00
@SharkIng 如果使用普通用户sudo为root,是否要先将普通用户添加到soduers里?
“没不要 su”是“没必要 su”吗?su很方便啊,难道有什么副作用?

谢谢。
likuku
2014-11-06 09:41:16 +08:00
@Showfom 额,极少使用RH系的...忘记了。

@SharkIng 抱歉,我记错,刚查了下自己的 xubuntu,的确默认是许可root登录,只是禁止 空密码登录。


@hzqim 还得禁止空密码登录
hzqim
2014-11-06 09:44:42 +08:00
@ryd994 在 ssh-keygen -t rsa 生成密匙对的步骤中不输入密码,登陆的时候就不用输入密码了,很方便,就是这样会不会降低安全性?
如果设置了密码,该密码是在本地对私匙进行验证还是传输到服务器和公匙进行验证还是密匙对一起验证?
BOYPT
2014-11-06 10:02:17 +08:00
@hzqim 使用sudo,就不需要告知root账户密码。

密钥密码仅为解锁密钥,和传输无关。
chenshaoju
2014-11-06 10:08:07 +08:00
@SharkIng Debian默认是不禁止的,我自己的笔记本和好几台Debian默认都允许root通过SSH登录。
hzqim
2014-11-06 10:49:36 +08:00
@BOYPT 也对,不过我都是自己一人管理个 VPS,所有就用 su 了。
msg7086
2014-11-06 13:07:00 +08:00
@chenshaoju Debian 8 的 openssh 包里已经默认只允许证书登录 root 了。

@hzqim su 太容易误操作了。
统一使用 sudo 的话,只会因为权限不够而无法执行,而不会因为一个疏忽而超权限执行。

而且用 sudo 的话,只有有 sudo 权限的人才能提权。而 su 的话每次都要打 root 密码,不方便放权。

比如你写的某个脚本,有一小部分命令需要提权。只需要把这些指令写进 sudoer 里,设定好 NOPASSWD ,然后用 sudo 来执行这些指令,既可以保证提权,又可以防止提权执行任意指令。比如只能 sudo ls 却不能 sudo reboot 。

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

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

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

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

© 2021 V2EX