Você misturou terminologia em sua pergunta. Primeiro você pede a autenticação de dois fatores. Em seguida, você prossegue para explicar suas necessidades, que não são de forma alguma relacionadas à autenticação de dois fatores. A autenticação de dois fatores em si não impõe nenhuma limitação ao que o usuário pode fazer uma vez autenticado.
É possível impor limitações ao que pode ser feito com um login ssh, contanto que uma chave pública seja usada para autenticação.
Em ~/.ssh/authorized_keys
, você pode impor limitações sobre o que cada chave especificada nesse arquivo pode ser usada. Por exemplo, se você não quiser permitir o acesso ao shell, poderá forçar um comando, que não faz nada:
command="/bin/false" ssh-rsa ...
A chave nessa linha não terá acesso nem ao shell nem ao sftp. Ele ainda pode ser usado para encaminhamento de porta, desde que o sinalizador -N
seja usado no lado do cliente. Existem muitas outras limitações possíveis. Para uma lista completa das limitações que você pode impor no uso da chave, veja a página man do sshd.