Khan, 29, has not played for India since the first Test against Australia in Melbourne in December due to an ankle injury and underwent rehabilitation at a Johannesburg sports medicine centre.
"I feel I am not yet ready for international cricket," the left-arm seamer said. "I have started bowling but I have been asked by doctors not to push it.
"One of the reasons I am not ready for Tests matches is because I have to bowl 30-35 overs across five days. Doctors have advised me to start with one-dayers and club games."
South Africa arrive in India later this month for three Tests in Chennai (March 26-30), Ahmedabad (April 3-7) and Kanpur (April 11-15).
Khan said he will be fit to play in the multi-million dollar Indian Premier League's Twenty20 competition starting on April 18.
The seamer, who has 170 Test and 201 one-day wickets, has signed up with IPL's Bangalore franchise for 450,000 dollars.