[Linux]用户登录后自动ssh到其他服务器

为了限制用户行为,当特定用户登入服务器时,shell会自动运行命令,并且用户取消命令也会导致用户的登出。如实现堡垒机功能,用户在登入后只能选择ssh目标并输入用户名与密码,并且没有shell命令输入的能力。

本功能实现原理是将用户的shell指定为一个特定脚本,因此脚本结束时用户也会退出登录。

本例中修改用户jump(root用户视角)

新建用户:

adduser jump # 首先新建用户,并设定密码
mkdir /home/jump/bin # 新建用于储存脚本的目录,非必要

新建脚本:

vi /home/jump/bin/login.sh

脚本(login.sh)内容:

#!/bin/sh
clear # 清空屏幕
stty erase ^H # 用户输入Backspace按键会清除^H符号
stty kill ^U # 用户输入 Ctl+U 会清除本行
echo "请输入ssh目标地址:"
read targethost # 读取用户输入存入 targethost
echo "请输入用户名:"
read username # 读取用户输入存入 username
/usr/bin/ssh $targethost -l $username

注意几点:

  • ^H的输入需要按键按下Ctl+v 然后输入Ctl+Backspace
  • ^U的输入需要按键按下Ctl+v 然后输入Ctl+u

赋予脚本执行权限:

chmod u+x /home/jump/bin/login.sh

修改用户组:

chown jump:jump -R /home/jump/bin

最后需要将用户的shell指定为这个脚本,打开/etc/passwd,修改用户的哪一行

修改前:

jump:x:1004:1004:,,,:/home/jump:/bin/bash

修改后:

jump:x:1004:1004:,,,:/home/jump:/home/jump/bin/login.sh

此时用户登入后会自动执行脚本内容,且取消脚本会登出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值