需求是这样的,我们雇佣了几个外包人力 (A)。
他们需要 ssh 登录我们特定的一台 ubuntu server (B)。
但是不想让他们通过(B)跳转登录到我们其他的 server。
整理需求:
在 ubuntu server 上创建一个 account,
允许该 account 从其他机器上远程 ssh 登录;
但不允许该 account 使用 ssh-client 登录到其他 server ;
1
harde 2020-03-19 16:50:16 +08:00
不是很明白,难道你们局域网其他 Servrer 账号密码都给外包了?
|
2
cev2 2020-03-19 16:56:09 +08:00 via Android
你们内网所有服务器都是相同的密码?
密码不同的话为什么担心登录。 |
3
DnC OP |
4
DnC OP 即,这个问题是为了说服 INFRA,允许给他们开通 22 端口的 ssh 访问权限。
|
5
pmispig 2020-03-19 17:52:56 +08:00
只能从网络这边操作了,禁止这台服务器访问其他 IP 的 ssh 端口。
|
6
dorentus 2020-03-19 17:55:16 +08:00
iptables 有 —uid-owner 和 --gid-owner 参数,可以匹配特定用户 /组,说不定能满足你的需求
|
9
xingheng 2020-03-20 02:25:46 +08:00
请教:不是很理解“通过(B)跳转登录到我们其他的 server”要如何操作,是在 B 机器里直接存入了 ssh keys 还是担心别人通过 ssh 密码爆破?
|
10
dendi009 2020-03-20 02:34:59 +08:00
在 B 机器上执行, chmod 750 /usr/bin/ssh , 试试. 对一般菜, 这个就能实现了.
如果 account 是 root 属组, 换成 chmod 700 /usr/bin/ssh 方法很多吧, 没有绝对的安全. |
11
doveyoung 2020-03-20 09:49:47 +08:00
@xingheng #9 同样不理解,serverB 没有登陆其他 server 的 key,如何登陆。也可以用 jumpserver 之类的堡垒机控制
|
12
DnC OP @doveyoung #11 源头上规避可能存在的风险。
理论上,你没办法保证除了 B 之外的所有 server,都有健全的安全策略来防止 hijack 登录。 就好比,个人丢了身份证,肯定第一时间去挂失和担心被人冒用的风险。 而不会完全依赖于 身份证+人脸识别 这种机制保证安全。 例子不太恰当,大概是这么个意思。 |
13
BOYPT 2020-03-20 16:54:55 +08:00
直接弄个 JumpServer 做账户权限控制吧
|