나는 지속적으로 가상 머신을 파괴하고 구성하고 있기 때문에 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