I feel I should assume that my company runs keyloggers at work. I'm fine with this but I would like to change my password everytime I log in. I can't do this by typing of course though.

So how can I change my password without typing it? - I've ruled out ssh keyauth for same reasons as above.

The only stumbling I have is getting /sbin/passwd to set a passwd from sdin (grepped from a file of pre-selected paswords). Maybe there's another program to do it?

I've also thought about trying to encrypt a password (with chpasswd or mcrypt?) and replace it in /etc/shadow though this is not ideal as it might go very wrong; backups of /etc/shadow a good idea!.

I feel this is a very simple thing and I'm amazed it seems as if it hasn't been done before.