Jenkins slave jobs failing on "Unexpected termination of channel"
You'll see that error if the Jenkins master loses connectivity with the slave. It could be due to any of the three issues you listed above:
Manually killing the slave process
The slave server becoming unavailable
A network problem between the master and the slave
I resolved it by a simple restart of the master Jenkins server.
Since 1.520, Jenkins requires Java 6 or later, one of the possibility of this error is that you dont have java 6 or later on slave/remote. Resolution is to update your remote machine with java 6 or later or set correct environment variable which SSH uses while it logs in into slave machine.