繁体   English   中英

通过 SSH 连接时阻止执行 bash_profile

[英]Prevent .bash_profile from executing when connecting via SSH

我有几台服务器运行 Ubuntu 18.04.3 LTS。 尽管自动登录被认为是不好的做法,但我理解其中的风险。

我已执行以下操作来自动登录用户:

sudo mkdir /etc/systemd/system/getty@tty1.service.d
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf

然后我将以下内容添加到文件中:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin my_user %I $TERM
Type=idle

然后,我编辑以下文件,以便用户能够自动启动程序:

sudo nano /home/my_user/.bash_profile

# Add this to the file:
cd /home/my_user/my_program
sudo ./program

当服务器启动时,这在控制台上效果很好,但是,当我 SSH 进入服务器时,启动了相同的程序,我不希望这样。

最简单的解决方案是 SSH 与不同的用户,但有没有办法阻止程序运行时我 SSH 在使用相同的用户?

简单的方法是检查变量 ssh 设置的环境; 有几个。

# only run my_program on login if not connecting via ssh
if [ -z "$SSH_CLIENT" ]; then
  cd /home/my_user/my_program && sudo ./program
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM