Automatically Renewing Your Kerberos Ticket

If you are a user who tends to stay logged into a workstation for days at a time it can important to make sure you Kerberos ticket doesn’t expire. If your Kerberos ticket expires, simulations or other programs you are running won’t be able to access/write to data in your home directory or to stashes. Some other programs, like web browsers, also don’t behave properly when they can’t continually write to your homedir and can make your workstation unstable by spawning an excessive number of processes or by having too many pending IO operations to your home directory.

Krenew is a program that can renew your kerberos ticket, either manually once or automatically at some time interval until the ticket reaches the end of its life and can’t be renewed anymore. There are several ways you can use krenew to automatically renew your kerberos ticket, and we’ll give some examples of how to do this by putting krenew into your .bash_profile, and how to make a krenew systemd user service to automatically renew your kerberos ticket.

Starting Krenew In Your .bash_profile Or .bashrc

You can start krenew automatically whenever you log into a linux workstation by adding this script segment to your .bash_profile or .bashrc file. This would probably be good to do if you need to keep long running processes running on multiple workstations.

if klist >/dev/null 2>&1 \                                                                                                                                                             
       && which krenew > /dev/null \                                                                                                                                                  
       && ! pgrep -U $USER krenew > /dev/null                                                                                                                                         
then                                                                                                                                                                                   
   krenew -b -K 60                                                                                                                                                                    
fi

Starting Krenew Using a Systemd User Service

You can make a systemd user service to automatically start/restart krenew. If you have a private workstation that you tend to use this would probably be the most reliable way to keep your kerberos ticket alive.

Defining the krenew systemd user service

To define the krenew systemd user service you’ll need to write this text to a file at ~/.config/systemd/user/krenew.service

[Unit]
Description=Automatically renew my kerberos ticket
After=autofs.service

[Service]
ExecStart=/usr/bin/krenew -K 60 -v
Restart=always

[Install]
WantedBy=multi-user.target

Enabling and starting the krenew systemd user service

To actually enable and run the krenew systemd user service you’ll need to run the following commands in a terminal:

systemctl --user daemon-reload
systemctl --user enable krenew.service
systemctl --user start krenew.service
systemctl --user status krenew.service

If this is successful the output of the last command should look something like:

  • krenew.service - Automatically renew my kerberos ticket
    Loaded: loaded (/u/user/.config/systemd/user/krenew.service; enabled; vendor preset: enabled)
    Active: active (running) since Thu 2018-08-09 16:38:25 PDT; 2min 32s ago
    Main PID: 5392 (krenew)
      CGroup: /user.slice/user-9999.slice/user@9999.service/krenew.service
           └─5392 /usr/bin/krenew -K 60 -v
    
    Aug 09 16:38:25 rita systemd[2582]: Started Automatically renew my kerberos ticket.
    Aug 09 16:38:25 rita krenew[5392]: krenew: renewing credentials for user@CECS.PDX.EDU

Other Ways to use Krenew

The krenew man pages shows various other ways that you can use krenew too. If the above options don’t work for you, it would be worth reading through the man pages.