Como forçar o ssh-add a perguntar a frase-senha ao carregar a chave RSA do FIFO?

1

Eu criei a seguinte chave RSA (com senha):

ssh-keygen -t rsa -f rsa_foo

Agora, ao adicionar a chave no modo normal, ssh-add pede a senha fina:

$ ssh-add rsa_foo
Enter passphrase for rsa_foo: 12345

No entanto, quando carrego a chave pelo FIFO, ela não pergunta mais:

$ mkfifo -m=600 fifo
$ cat rsa_foo >fifo | ssh-add fifo

e isso me dá o seguinte erro:

  • OS X:

    ssh_askpass: exec(/usr/libexec/ssh-askpass): No such file or directory

  • Linux (Ubuntu):

    ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory

Isso funciona quando o arquivo de chave RSA não tem senha.

Como faço para corrigir o erro acima para que ssh-add possa perguntar a senha normalmente (ou eu poderia passar para ela de alguma forma)?

Meu objetivo é carregar essa chave RSA usando o FIFO.

    
por kenorb 11.10.2015 / 01:40

1 resposta

2

Ele me pergunta a senha:

$ ls -l fifo
prw------- 1 glopes users 0 Out 11 03:59 fifo
$ ssh-add fifo
Enter passphrase for fifo:

Em seguida, carregue a chave de outro terminal:

$ cat id_rsa > fifo

Ou tente o seguinte one-liner:

$ (cat id_rsa > fifo &); ssh-add fifo

Direto no terminal, sem ligar para $SSH_ASKPASS , como diz o manual:

If ssh-add needs a passphrase, it will read the passphrase from the current terminal if it was run from a terminal. If ssh-add does not have a terminal associated with it but DISPLAY and SSH_ASKPASS are set, it will execute the program specified by SSH_ASKPASS (by default ''ssh-askpass)'' and open an X11 window to read the passphrase.

Você sempre pode contorná-lo descriptografando a chave explicitamente antes de passá-la para ssh-add.

    
por 11.10.2015 / 04:07