Crie uma entrada ~/.ssh/config para as VMs que você está recriando continuamente. Exemplo abaixo. Significa que você não precisa continuar hackeando seu arquivo ~/.ssh/known_hosts .
Host test-vm-1
StrictHostKeyChecking no
Eu continuo destruindo e provisionando VMs, então o ssh frequentemente reclama que estou sendo NASTY . Mmmm ...
De qualquer forma, eu escrevi uma função de peixe para banir a chave ofensiva na linha que ela me diz com sed :
function forgethost
sed -i.bak {$argv}d ~/.ssh/known_hosts
end
mas eu gostaria de manter o comando citado para me proteger contra (injetar) um pouco. Quando eu envolvê-lo em '' , ele não substitui $argv . Além disso, eu prefiro apenas pegar o primeiro argumento [0] , mas quando eu adiciono que ele também não se expande.
Crie uma entrada ~/.ssh/config para as VMs que você está recriando continuamente. Exemplo abaixo. Significa que você não precisa continuar hackeando seu arquivo ~/.ssh/known_hosts .
Host test-vm-1
StrictHostKeyChecking no
When I wrap it in '', it then doesn't replace $argv.
O que você deseja é aspas duplas, ou seja, "$argv" . Isso é o mesmo que em outros shells.
Also, I'd prefer to just grab the first argument [0], but when I add that it also doesn't expand.
Em fish, o primeiro elemento de uma lista tem o índice 1, então você quer $argv[1] .
Juntos, isso significa
function forgethost
sed -i.bak "$argv[1]"d ~/.ssh/known_hosts
end
É claro que você também pode adicionar tratamento de erros se mais de um argumento tiver sido fornecido com
if set -q argv[2] # yes, no $
echo "This only accepts one argument" >&2
return 1
endt
Tags fish