Portsmouth is a city in Shelby County, Iowa, United States. The population was 195 at the 2010 census.