The main question to be answered here is this:
How illegal/wrong is it to use your name to push my code through for approval?
Different companies have different policies and rules when it comes to things like this. This is, in my opinion, something you could get fired over. The company I worked for (in India) almost fired two people for not changing the comment on top of the code. We used to add comments on top of the code with edit history and explanation to the edits made. If you change some code and not mention it in the top, you could get into a lot of trouble. If you change something and mention someone else's name, you could actually get fired for it.
So, how serious is it to your company and how does that affect your approach?
Here are a few ways you can respond:
When you get an email when something goes wrong, you could reply to that email, adding your coworker to the CC section, and say something like this:
I apologize, but I do not recollect making any changes to this code. [Co-worker's name], do you know who made this change?
This way, you're playing it safe. You're letting the co-worker decide whether he wants to say he did it or not. If he chooses not to, that is fine. The supervisors know that you didn't mess anything up, but someone else is and not owning up to it. It is up to them to investigate. As far as you know, you are not in the knowledge of someone using your name.
You could forward all the emails you get when something goes wrong to your co-worker with something like this in the body:
Dude, you're trying to get me fired! LOL. There are some problems with your code, could you respond to this email and let them know you're working on it?
This immediately won't reap any benefits. But what it will definitely achieve is, your co-worker realizes that you think this is going to get you into trouble. After a few times of you sending an email like that, he will stop. Because, you are letting him know that you DEFINITELY know when he uses your name.
The reason for that "LOL" is to make it seem on the lighter side. And the reason for forwarding this email to your co-worker and letting him deal with it is, the person who originally sent you the email notices that you have not been responding to any of those emails when you claim responsibility for it. When your co-worker keeps replying to those emails, they will start to notice that he takes responsibility for "Your" mistake in the code; hence, putting the co-worker at risk of getting caught for "proxying" your name.
Be completely straightforward. The next time you meet this co-worker (do not try to set a meeting up just to talk about this, that will look like you're escalating it more than it needs to), just casually bring up a conversation about how you've been getting emails for some flaws in his code. Just let him know that there are problems with his latest deployment and that he might want to contact the concerned party to get it fixed. And end this discussion with something like this:
Also, I am not in the same department as you. So you may want to stop using my name because if they find out that you've been using my name, you might get fired. It was different when we were on the same team but now there is no logical explanation behind why I would have written the code for a project I am not even in. So, it is definitely going to come up and if it does, trust me! I don't like you that much to get fired for you! Hahaha..
Keep it casual and joke about it. Don't make it seem like a big deal. But instead of you having to worry about this, make him worry about. It is his problem after all. As long as you've let him know that it is not OK, the company cannot do anything to you for him continuing to use it (depending upon the location of this company).