[英]When executing an SSH command in Jenkins, the bash profile is different to when connecting over SSH with the same user
[英]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.