We present a new class of models, called uncertain-input models, that allows us to treat system-identification problems in which a linear system is subject to a partially unknown input signal. To encode prior information about the input or the linear system, we use Gaussian-process models. We estimate the model from data using the empirical Bayes approach: the hyperparameters that characterize the Gaussian-process models are estimated from the marginal likelihood of the data. We propose an iterative algorithm to find the hyperparameters that relies on the EM method and results in decoupled update steps. Because in the uncertain-input setting neither the marginal likelihood nor the posterior distribution of the unknowns is tractable, we develop an approximation approach based on variational Bayes. As part of the contribution of the paper, we show that this model structure encompasses many classical problems in system identification such as Hammerstein models, blind system identification, and cascaded linear systems. This connection allows us to build a systematic procedure that applies effectively to all the aforementioned problems, as shown in the numerical simulations presented in the paper.