답변:
-o "UserKnownHostsFile /dev/null"
작동해야합니다.
grep
은 stdout과 stderr을 병합합니다. 또한 종료 상태가 변경 될 수 있습니다. 사용하는 경우 bash
,이 메시지를 없애 공정 대체를 사용하는 것이 더 좋을 것입니다 ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. 파이프와 출구 상태 처리의 해당 변경을 피합니다.
클라우드 서버 (AWS EC2, Rackspace CloudServers 등)로 작업 중이거나 Vagrant에서 지속적으로 새 이미지를 프로비저닝하고 있기 때문에이 동작을 원할 경우 bash 별칭이나 옵션을 추가하는 대신 SSH 구성을 업데이트 할 수 있습니다 명령 줄.
다음과 같은 것을 추가하십시오 :
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
나는 known_hosts에 호스트 키를 추가하고 (이 서비스를 실행하는 사람들은 적어도 동일한 호스트 이름을 제공하는 컴퓨터간에 호스트 키를 일관되게 유지할만큼 똑똑합니다) StrictHostKeyChecking을 켜고 CheckHostIP를 끄고, LogLevel ERROR로 로깅하면 보안을 유지하면서 최상의 경험을 얻을 수 있습니다. (OKHostIP가 없으면 DNS를 신뢰할 필요가 있습니다. 이는 DNSSEC 또는 이와 유사한 것이없는 거대한 격차 구멍입니다. 그러나 우리는 당장 그 양탄자 아래에서 그것을 쓸어 버릴 것입니다.)
읽기 전용 known_hosts 파일을 사용하므로 무언가를 수행해야하거나 known_hosts에 항목을 추가 할 수 없다는 경고가 계속 표시됩니다.
내가 사용하는 것 :
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
이 서비스가 HTTPS를 통해 웹 사이트에 SSH 호스트 키를 게시하기를 원하므로 먼저 연결하지 않고 명시 적으로 복사하여 MITM 공격에 노출 될 수 있습니다.
나는 제안한다
LogLevel ERROR
위에
LogLevel QUIET
여전히 "호스트 이름을 확인할 수 없습니다"및 기타 오류가 표시됩니다.
grep -v "^Warning: Permanently added"