需求是这样的,我们雇佣了几个外包人力 (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 做账户权限控制吧 |