How to deform a mesh based on bone rotation?
Your example is tricky because the ring forms a loop to rig, which is difficult for it to work omnidirectional and also stretch.

Normally for sliding stuff like handbags on shoulder etc. you would just IK rig it and give the control a Floor constraint to emulate the collision. But this would be too difficult here.

Instead I suggest placing reasonable amount of bones into the rubber ring and building the same amount of rigid-body collision meshes for it making together the ring. They need to collide with the shaft and be connected with rigid-body joints. When you parent the bones to the pieces it should give the most realistic results.

You could also try to rig the torus with a star of bones radiating from the torus center to edges and script a custom driver for them that will move the bones away from the shaft.