Meu objetivo é atrasar o desbloqueio deste USB para depois que o sistema inicializar com o ssh.service
ativo e nunca expirar até que seja digitado. No entanto, o tempo limite ainda acontece e prossegue para getty
. Você não pode digitar sua senha quando o prompt de senha aparecer (o TTY não está anexado)
Eu tenho copiado o que auto
resulta /etc/crypttab
em via systemd-cryptsetup-generator
. Eu também estive olhando systemctl list-dependencies
para ver o que sysinit.target
dá systemd-ask-password-console.path
para anexar ao console TTY.
/etc/crypttab
crypt /dev/disk/by-label/crypt none nofail,noauto,timeout=0,x-systemd.device-timeout=0
/etc/systemd/system/finish.target
[Unit]
Description=Mount crypt USB
Requires=multi-user.target
[email protected] systemd-ask-password-console.path
After=ssh.target
[email protected]
[Install]
WantedBy=multi-user.target
Se eu fizer Wants=mnt-crypt.mount
ou Wants=dev-mapper-crypt.device
realmente respeitar os tempos limite, mas ainda não aceitar a entrada de senha.
ls -la /etc/systemd/system/multi-user.target.wants/finish.target
lrwxrwxrwx. 1 root root 33 Jun 6 00:04 /etc/systemd/system/multi-user.target.wants/finish.target -> /etc/systemd/system/finish.target
systemctl list-dependencies
● ├─finish.target
● │ ├─systemd-ask-password-console.path
● │ ├─[email protected]
│ └─...
Se o fizer, systemctl restart systemd-ask-password-console.service
posso realmente começar a digitar a senha e ela funcionará como esperado tanto no terminal em execução quanto no console na tela ( /dev/tty1
).
Parece que há um relacionamento em algum lugar que impede systemd-ask-password-console
o início após a inicialização inicial, porque ele começará com prazer mais tarde ao lado de systemd-ask-password-wall
.
Mesmo se eu copiá-lo e editá-lo como um novo serviço, ele também iniciará o systemd-ask password --watch --console
processo.
Depois de muitas tentativas e erros, percebi que você não poderia reutilizar nenhuma das unidades integradas porque elas dependem fortemente das unidades no início do processo de inicialização. Temos que criar nossas próprias unidades e usar comandos simples.
Eles vêm com um tempo limite padrão de 300s com desbloqueio (remova se desejar), então ele notificará normalmente via parede com outras solicitações de senha após o tempo limite.
Desativamos os serviços ask-password-wall e, em seguida, consultamos uma única senha no console. Por que não usar
systemd-ask-password-console.path|systemd-ask-password-console.service
?--watch
para várias consultas, pois precisamos apenas de 1 neste caso.Como você pode ver
attach-crypt-usb.service
,[email protected]
isso ocorre primeiro por causa da integração e, em segundo lugar, porque, caso contrário, a unidade de montagemmnt-crypt.mount
acionaria o systemd-cryptsetup tentando anexar o dm-disk simultaneamente, uma vez solicitado.Se você tiver alguma entrada ou feedback, sinta-se à vontade para deixá-lo - voltarei e atualizarei conforme for testado em batalha.