Não tenho certeza se entendi por que a opção NOPASSWD
não atende às suas necessidades por si só, mas se você quiser exigir a presença da unidade flash, posso pensar em algo que pode quase fazer o que você está procurando por.
Isso é mais uma solução alternativa, mas você pode criar um usuário administrativo local, digamos superuser
, e conceder a esse usuário% desudo
sem senha, ou seja, adicione a seguinte linha ao seu arquivo /etc/sudoers
:
superuser ALL=(ALL) NOPASSWD:ALL
Em seguida, você pode desativar o login por senha e configurar a autenticação SSH apenas para chave para esse usuário, por exemplo, execute passwd -l superuser
e adicione a seguinte sub-rotina a seu /etc/ssh/sshd_config
:
Match user superuser
PasswordAuthentication no
Em seguida, crie um par de chaves SSH para esse usuário. Adicione a chave pública a /home/superuser/.ssh/authorized_keys
e coloque a chave privada no seu pen drive. Então, quando você quiser usar a conta superuser
, conecte sua unidade flash e ssh na conta superuser
usando sua chave privada. E voilà! Agora você tem passwordless sudo
para seu usuário. É claro que você ainda precisará sair de suas sessões de shell quando terminar - desconectar o flash drive não será suficiente. Embora eu acho que você também pode configurar um Ganho de pré-encomenda para verificar a chave privada e sair automaticamente se não estiver presente (ou se for inválido).