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