Snakes can bend their elongate bodies in various forms to traverse various environments. We understand well how they use lateral body bending to push against asperities on flat ground for propulsion, and snake robots are already effective in this. Recent studies revealed that snakes also use vertical bending to push against uneven terrain of large height variation for propulsion and can adjust vertical bending to adapt to novel terrain, presumably using mechano-sensing feedback control. Although some snake robots can move through uneven terrain, few have deliberately used vertical bending for propulsion, largely because how to control vertical bending to generate propulsion against the environment is poorly understood. To make progress, here we systematically studied a snake robot with force sensors traversing large obstacles using vertical bending. To test whether and how well sensory feedback control helps adapt to perturbations, we compared a feedforward and three feedback controllers that generate distinct bending patterns and body-terrain interactions. To test whether and how well each controller adapts to various perturbations, we challenged the robot with various perturbations that break its contact with the terrain. Using feedforward propagation of a vertical bending shape, the robot could generate large propulsion when its bending shape conformed to the terrain. However, when contact was lost under perturbations, the robot easily lost propulsion and overloaded its motors. Contact feedback control helped the robot maintain propulsion by regaining contact. Unlike propulsion generation using lateral bending, during propulsion generation using vertical bending weight can help maintain contact with the environment but may overload actuators. Our findings advanced our understanding of how snakes slither in the 3-D world and will help snake robots better traverse complex 3-D terrain.