Git는 "경고: 알려진 호스트 목록에 영구적으로 추가되었습니다"라고 말합니다.
당김 또는 밀 때와 같이 git를 사용하여 리모컨과 상호 작용할 때마다 다음 메시지가 표시됩니다.
경고: '...'(RSA)이 알려진 호스트 목록에 영구적으로 추가되었습니다.
이 성가신 메시지가 표시되지 않도록 하려면 어떻게 해야 합니까?그것은 성가신 일일 뿐입니다. 모든 것이 제대로 작동합니다.
성을 합니다.~/.ssh/config
줄을 묶고 삽입합니다.
UserKnownHostsFile ~/.ssh/known_hosts
Github에 때 되지만, 그 가 Github에 되어 더 known_hosts
파일. 이렇게 하면 로그 메시지를 숨기는 대신 문제가 해결됩니다.
이 문제는 꽤 오랫동안 저를 괴롭혔습니다.이 가 OpenSSH의 않기 합니다.~/.ssh/known_hosts
ssh -vvv git@github.com
debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
다음 행을 ssh 구성 파일($HOME/.ssh/config)에 추가합니다.
LogLevel=quiet
명령줄에서 ssh를 실행하는 경우 명령 문자열에 다음 옵션을 추가합니다.
-o LogLevel=quiet
예를 들어 다음은 machine.example.org 에 설치된 gcc 버전을 출력합니다(경고 없음).
ssh -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-o LogLevel=quiet \
-i identity_file \
machine.example.org \
gcc -dumpversion
트LogLevel
ERROR
(아닙니다.QUIET
)에서.~/.ssh/config
다음 오류가 표시되지 않도록 파일:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
이 메시지는 SSH에서 온 것으로, 이전에 연결한 적이 없는 호스트에 연결하고 있음을 경고합니다.SSH 세션에 대한 MITM 공격을 나타낼 수 있는 호스트 키 변경에 대한 경고를 놓칠 수 있으므로 이 옵션을 해제하는 것은 권장하지 않습니다.
다음에 대한 경고 메시지를 표시하지 않으려면ssh
다행 추할수있다니습에 다음 할 수 .~/.ssh/config
:
Host *
LogLevel error
그러면 경고는 비활성화되지만 오류 메시지는 비활성화되지 않습니다.의다설 마로지찬가의 ~/.ssh/config
할 수 .LogLevel
호스트별로 보다 세부적으로 제어할 수 있습니다.
는 주로 합니다.~/.ssh/known_hosts
자동으로 업데이트되지 않습니다.따라서 이 경고 메시지가 표시될 때마다
이 문제는 재생성된 가상 시스템에 연결할 때 자주 발생하며, 이 경우 키가 동일한 IP 주소로 변경됩니다.
해결책
할 수 .~/.ssh/known_hosts
파일, 그리고 첫 번째 연결 후에는 키가 있고 그 이후에는 경고 메시지가 없습니다.
항목이 여러 개인 경우 아래 명령을 사용하여 제거할 수 있습니다.
$ ssh-keygen -R <hostname>
저한테는 잘 됩니다.
SSH 키 추가
ssh-keygen -t rsa -b 4096 -C "abc@abc.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/bitbucket_rsa
구성 파일 작성
crate ~/.ssh/config
아래 줄에 추가합니다.
UserKnownHostsFile ~/.ssh/known_hosts
그런 다음 pub 키를 추가하고 리포지토리를 복제합니다.완료...
다음을 사용하여 개인 키를 ssh-agent에 추가합니다.
ssh-add ~/.ssh/id_rsa
GitHub의 리포지토리를 사용하는 경우 이 문제를 완전히 방지하기 위해 대신 HTTPS 버전의 URL을 사용하는 것이 좋습니다.
윈도우즈 GitHub 응용 프로그램 내에서 리포지토리를 복제하는 경우 이는 원격 URL에 사용되는 것입니다.그들은 우리가 모르는 것을 알고 있을지도 모릅니다.
저도 같은 질문이 있는데요, 제가 발견한 것은.ssh
내일에 을 저장합니다.~
저는 나그냥는서그를 ..ssh
아래의 ~
경로, 그리고 문제가 해결되었습니다.
Windows 컴퓨터를 사용하기 시작할 때도 같은 문제가 발생했습니다.저의 경우 SSH 설정이 완료되지 않았기 때문입니다.Github에는 SSH 설정에 대한 매우 정확한 설명서가 있습니다.일단 치료가 완료되면 문제는 해결되었습니다.
https://help.github.com/articles/checking-for-existing-ssh-keys/ https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
저의 경우, 서버를 설정한 관리자가 다음 옵션을 설정했기 때문입니다.~/.ssh/config
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
대부분의 경우에 사용하지 않음으로써 잘 작동했습니다.~/.ssh/known_hosts
파일. 그러나 엔터프라이즈 gitlab repo의 경우 "경고: 알려진 호스트 목록에 영구적으로 추가됨..."이라는 메시지가 표시될 때마다
내 해결책은 논평하는 것이었습니다.UserKnownHostsFile /dev/null
라인, 생을허니다습을 만들 수 있게 .~/.ssh/known_hosts
그리고는 그 이후로 더 이상의 경고를 주지 않았습니다.
또이잘항목/항된목있있다에 .known_hosts
.
# find entry in ~/.ssh/known_hosts
ssh-keygen -F <hostname>
# delete entry in ~/.ssh/known_hosts
ssh-keygen -R <hostname>
Gridengine을 했습니다.qrsh
원격 셸 로그인.에 일반적인 경우에는.ssh
예상대로 작동할 수 있습니다(처음 경고한 다음 이후에는 조용해집니다).
내 해결책은 수동으로 채우는 것이었습니다.~/.ssh/known_hosts
할 수 가능한 서버 이름)qhost
서버 나열):
for p in server1 server2 server3 server4; do
ssh-keyscan -H ${p}.company.com;
ssh-keyscan -H $(getent hosts $p | perl -lane 'print $F[0]');
done >> ~/.ssh/known_hosts
배경:
그리드 엔진은 SSH를 사용하여 로드가 가장 적은 서버를 선택할 수 있는 작업 스케줄러입니다.경고의 이유는qrsh
를 지정하는 "SSH SSH"라는 오류 메시지가 표시됩니다.known_hosts
포트 번호가 포함된 항목으로 업데이트됩니다.에 다에언제음 때.qrsh
가 있는 하고 " " "라는 포트 번호가 있습니다.known_hosts
새 포트별 항목으로 업데이트됩니다.에서 사용된 IP 주소가 사용되었기 입니다.ecdsa-sha2-nistp521
원시 IP 항목이 추가되지 않으면 다음과 같은 경고가 표시됩니다.
ECDSA host key for IP address '10.1.2.3' not in list of known hosts.
Linux/Cent OS VM에서 동일한 오류가 발생한 적이 있었는데, 재시작 후 IP가 변경되었기 때문입니다.에서 정적 IP를 하고 " " " " " " " " " " " " " " " " " " " " 에 했습니다./etc/hosts
file. 더 의 valuefile을 합니다. 정적 IP의 경우 약간 높은 범위 값을 언급합니다.예를 들어 현재 IP(ipconfig/ifconfig)가 192.168.0.102인 경우 다시 시작한 후 다음 번에는 192.168.0.103이 될 수 있습니다.따라서 IPV4 설정에서 정적 IP를 192.168.0.181로 정의하여 이를 수행해야 합니다.
이 명령만 있으면 됩니다.
해당하는 경우 GitHub:
ssh -T git@gitlab.com
GitLab을 사용하는 경우:
ssh -T git@gitlab.com
제가 알기로는 당신이 언급한 문제에 대한 깨끗한 해결책이 없습니다.
이전에 제안한 /dev/null 리디렉션은 여전히 경고를 표시하며 출력을 /dev/null로 리디렉션하여 원격 키를 저장하는 보안 기능을 비활성화합니다.
그래서 ssh는 여전히 실제로 폐기된 것을 쓴다고 생각할 것입니다.
제가 알기로는 메시지를 받아 stdout에서 제거하는 방법밖에 없습니다.
ssh/scp..... 2>&1 | grep -v "^Warning: Permanently added"
다음은 이러한 경고를 숨기기 위해 래퍼로 사용할 수 있는 완전한 예입니다.
#!/bin/bash
remove="^Warning: Permanently added" # message to remove from output
cmd=${0##*/}
case $cmd in
ssh)
binary=/usr/bin/ssh
;;
*)
echo "unsupported binary ($0)"
exit
;;
esac
$binary "$@" 2>&1 | grep -v "$remove"
설치하려면 수정하려는 실제 명령에 대해 "case" 문을 추가/수정하기만 하면 됩니다.(립슬, scp, git 등).
"ssh"는 스크립트 이름이 "ssh"(또는 스크립트 링크 이름이 ssh)여야 함)로 지정해야 한다는 것을 의미합니다.이진=/full/path는 스크립트가 래핑해야 하는 이진의 경로입니다.
그런 다음 원하는 이름의 스크립트를 /bin 또는 다른 곳에 넣습니다.
스크립트는 -o "UserKnown"을 사용할 수 있는 위치도 지정합니다.$ssh 변수에 HostsFile=/dev/null"을 지정하는 것이 메시지를 억제하려는 세션뿐만 아니라 모든 ssh 세션에 영향을 미치는 글로벌 ssh 구성에 이러한 보안 위험을 적용하는 것보다 훨씬 좋습니다.
단점:
그것은 완전히 깨끗한 해결책이 아니라 약간 간접적이며 모든 경우에 좋지 않을 수 있는 stdout으로 stderr을 이동시킵니다.
않은 수
언급URL : https://stackoverflow.com/questions/9299651/git-says-warning-permanently-added-to-the-list-of-known-hosts
'source' 카테고리의 다른 글
반응 후크/전체 딥을 글로벌하게 무시하도록 eslint 규칙을 구성하려면 어떻게 해야 합니까? (0) | 2023.06.21 |
---|---|
Ionic 잘못된 패키지 이름 __ngcc_entry_points_.json (0) | 2023.06.21 |
성능 테스트를 위해 스칼라와 함께 1억 개의 레코드를 MongoDB에 로드하는 방법은 무엇입니까? (0) | 2023.06.21 |
getResources().getColor()가 더 이상 사용되지 않습니다. (0) | 2023.06.11 |
UIButton: 선택된 강조 표시된 상태에 대한 이미지 설정 (0) | 2023.06.11 |