На сервере разрешить вход по ключу пользователю user_name. Это позволит обойтись без промежуточного пользователя и вызова sudo, а также без ввода пароля в ssh.
В Java просто запустить ssh как отдельный процесс. Что-то вроде "ssh user_name@server /path/to/script.sh". Вот и всё. Это для юникса, что там в путти, я не знаю, скорее всего что-то похожее. Вообще лучше такие задачи делать из-под юникса, венда для этого только препоны будет чинить.
Если разрешить вход по ключу пользователю user_name нельзя (долбанутые админы, например), то надо написать на сервере отдельный скрипт, который будет запускать sudo и всё остальное. Либо просто через sudo -u user_name /path/to/script.sh, если пароль sudo не просит, либо с помощью программы expect, если надо вводить пароль, реально надо запускать подпроцесс шелла, выполнять там какие-то команды. Но это уже самый большой геморрой и изврат.
Java тут в целом не при чём. От неё надо просто запустить ssh с нужными параметрами, как это делать, я думаю вы знаете или разберётесь. Всё остальное надо настраивать скриптами на удалённом сервере.