Global Navigation Satellite System Reflectometry (GNSS-R) based Bi-static Synthetic Aperture Radar (BSAR) is becoming more and more important in remote sensing, given its low power, low mass, low cost, and real-time global coverage capability. Due to its complex configuration, the imaging for GNSS-R BSAR is usually based on the Back-Projection Algorithm (BPA), which is very time consuming. In this paper, an efficient and general imaging algorithm for GNSS-R BSAR is presented. A Two Step Range Cell Migration (TSRCM) correction is firstly applied. The first step roughly compensates the RCM and Doppler phase caused by the motion of the transmitter, which simplifies the SAR data into the quasi-mono-static case. The second step removes the residual RCM caused by the motion of the receiver using the modified frequency scaling algorithm. Then, a cubic phase perturbation operation is introduced to equalize the Doppler frequency modulation rate along the same range cell. Finally, azimuth phase compensation and geometric correction are completed to obtain the focused SAR image. A simulation and experiment are conducted to demonstrate the feasibility of the proposed algorithm, showing that the proposed algorithm is more efficient than the BPA, without causing significant degradation in imaging quality.