私は常に仮想マシンを破壊して構成しているので、sshはしばしばNASTY
。まあ…
とにかく私は行から問題のあるキーを削除するためにFish関数を書いたsed
。
function forgethost
sed -i.bak {$argv}d ~/.ssh/known_hosts
end
しかし、自分自身を(注入する)ことから保護するように指示することについては引き続き参考にしたいと思います。梱包すると''
交換されません$argv
。また、最初のパラメータのみをインポートしたいが、追加[0]
しても拡張されません。
答え1
~/.ssh/config
継続的に再生成する仮想マシンのエントリを生成します。以下の例つまり、ファイルをクラックする必要はありません~/.ssh/known_hosts
。
Host test-vm-1
StrictHostKeyChecking no
答え2
''で囲むと、$ argvを置き換えません。
欲しいのは二重引用符です"$argv"
。つまり、これは他のシェルと同じです。
また、最初のパラメータ[0]だけを取得したいが、追加しても拡張されません。
Fishでは、リストの最初の要素にインデックスが1なので、が必要です$argv[1]
。
一緒にという意味
function forgethost
sed -i.bak "$argv[1]"d ~/.ssh/known_hosts
end
もちろん、複数の引数が指定されている場合は、エラー処理を追加することもできます。
if set -q argv[2] # yes, no $
echo "This only accepts one argument" >&2
return 1
endt