He will replace Lt Gen Michael Flynn who was fired after just three weeks and three days in the job.
A lieutenant general with the US Army, HR McMaster served in Iraq and Afghanistan, where he worked on a government anti-corruption drive.
Trump has praised Herbert Raymond McMaster as "a man of tremendous talent and tremendous experience" who is "highly respected by everybody in the military".