我不斷地銷毀和配置虛擬機,因此 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"
.這與其他 shell 中的情況相同。
另外,我更願意只獲取第一個參數 [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