VM을 계속 파괴하고 프로비저닝하므로 ssh는 자주 불만을 표시합니다.NASTY
. 음...
어쨌든, 나는 다음과 같이 알려주는 줄에서 문제가 되는 키를 추방하는 피쉬 함수를 작성했습니다 sed
.
function forgethost
sed -i.bak {$argv}d ~/.ssh/known_hosts
end
하지만 나는 나 자신을 조금이라도 (주입하는) 것으로부터 나를 보호하기 위해 인용된 명령을 유지하고 싶습니다. 로 포장하면 ''
대체되지 않습니다 $argv
. 또한 첫 번째 인수만 가져오는 것을 선호 [0]
하지만 이를 추가해도 확장되지 않습니다.
답변1
~/.ssh/config
지속적으로 다시 만드는 VM에 대한 항목을 만듭니다 . 아래 예. 즉, 파일을 계속 해킹할 필요가 없습니다 ~/.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