Sintaxe: Desabilitar ssh -o config value?

3

No meu /etc/ssh/ssh_config defino o valor de PKC11Provider para o caminho da minha biblioteca PKCS11.

No entanto, como o smartcard nem sempre está presente, quero garantir que as sessões ssh não interativas (como aquelas executadas pelo cron) não usem a biblioteca PKCS11 e, em vez disso, procurem apenas por chaves em meu disco rígido.

Então eu preciso digitar um comando ssh como este:

$ ssh -o PKCS11Provider= server.com

No entanto, isso é inválido:

command-line line 0: Missing argument.

Como eu especifico na linha de comando que eu quero remover uma variável de configuração? Eu procurei nas páginas de manual e no Google, mas não encontrei respostas (talvez apenas o Google-fu).

Eu tentei colocar lá o valor no , mas como colocar algum outro disparate, o ssh então só reclama de não encontrar a biblioteca dinâmica. Funciona, então, mas emite esse erro e eu sinto que esse não é o jeito certo de fazê-lo.

Obrigado por ideias.

    
por Martin Pecka 29.10.2015 / 22:04

2 respostas

1

Não é possível desconfigurar o valor de configuração da maneira como a leitura de configuração é feita em ssh internals.

Você deve pensar no contrário. Onde você define esse valor? Você deve fazer isso em ~/.ssh/config .

Se você usar seu cartão inteligente somente para hosts específicos, deverá colocar essa opção no bloco Match host .

Você executa scripts cron em seu usuário? Você pode usar Match exec block para verificar se você executa a sessão interativa ou a partir do cron. Ou você pode até escrever um script que verificaria se o carrinho está lá (use novamente Match exec ). Se você executá-lo com um usuário diferente, forneça a ele seu arquivo de configuração sem essa opção (em seu diretório pessoal).

Ou você pode simplesmente fornecer diferentes ssh_config para o script cron ssh (usando -F switch), onde você não terá essa opção definida. Existem muitas possibilidades nesse sentido. Se você estiver interessado em particular, posso adicionar mais detalhes.

    
por 29.10.2015 / 22:29
1

Sua biblioteca PKCS11 soa desonesta para mim se ela não relatar nenhuma chave se não houver nenhum token / cartão inteligente presente.

FWIW, no openssh 6.6.1,

ssh -o IdentitiesOnly=yes

não tentará autenticar com chaves obtidas da biblioteca PKCS11, mas parece tentar lê-las de qualquer maneira, e

ssh -I /dev/null

reclamou com dlopen /dev/null failed: /dev/null: file too short , mas passou a me pedir login interativo (já que eu não tinha par de chaves adequado, mas -vv me mostrou que os pares de chaves locais ainda eram oferecidos).

    
por 27.08.2016 / 18:15

Tags