SSH 클라이언트가 원격 서버의 ECDSA 키를 확인할 때 'known_hosts'파일 대신 '/ dev / null'을 확인하는 것 같습니다.

shprogram

known_hostsSSH를 사용하는 동안 파일이 올바르게 확인되지 않는 이유를 알고 싶습니다 . 요컨대, 내 SSH 클라이언트가 파일 /dev/null대신 확인하고 있다고 생각 known_hosts합니다. 내가 추측 한 방법에 대한 자세한 내용은 아래에 나와 있습니다.

예를 들어,라는 mars클라이언트 노드로 이름이 지정된 노드에서 로그인하고 있습니다 saturn. saturn공개 및 개인 키를 설정 한 후 들어갈 수 있지만 다음 경고가 표시됩니다.

root@mars# ssh saturn
Warning: Permanently added 'saturn,10.30.3.3' (ECDSA) to the list of known hosts.

로그 아웃하고 동일한 saturn노드에 로그인 하면 동일한 경고 메시지가 표시됩니다. 로그 아웃하고 다시 로그인하는 횟수는 중요하지 않습니다.이 메시지가 표시됩니다. 경고를 억제하고 싶지 않습니다. 이 경고가 계속 나타나는 이유를 알고 싶습니다. 다음을 수행하여 노드의 known_hosts파일에 의 ECDSA 키 mars있는지 확인 saturn했지만 오류가 발생합니다.

# ssh-keygen -F saturn
do_known_hosts: hostkeys_foreach failed: No such file or directory

known_hostsSSH 클라이언트를 사용하는 동안 파일이 제대로 확인되지 않았 는지 궁금 해서 자세한 정보 플래그로 로그인하여 문제가 발생한 부분을 확인했습니다. 다음은 잘린 출력입니다.

root@mars# ssh -vvv saturn
.
.(truncated)
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:nkvxyuLtlDdO8pAycafcfqSPE7OUWgN6Z++Aia/Cygg
debug3: hostkeys_foreach: reading file "/dev/null"
debug3: hostkeys_foreach: reading file "/dev/null"
Warning: Permanently added 'saturn,10.33.3.3' (ECDSA) to the list of known hosts.
.
.(truncated)

따라서 내 SSH 클라이언트 mars가 .NET /dev/null대신 알려진 호스트 키를 찾고있는 것 같습니다 /root/.ssh/known_hosts.

"좋은"동작이 어떤 것인지보고 싶었 기 때문에 이미 알고 있는 다른 서버 쌍 (여기서는 earthneptune) 에서 SSH를 사용했습니다 Warning: Permanently added. 자세한 정보를 켰으며 로그 메시지의 일부만 표시합니다. 에서 로그인 하면 다음 earthneptune제공됩니다.

root@earth# ssh -vvv neptune
.
. (truncated)
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:qo7vcBwG53p/9MlaTIQJbMZ8Wgf6QxiCJLR1jUiblQ8
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /root/.ssh/known_hosts:9
debug3: load_hostkeys: loaded 1 keys from saturn
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /root/.ssh/known_hosts:3
debug3: load_hostkeys: loaded 1 keys from 10.33.9.10
debug1: Host 'neptune' is known and matches the ECDSA host key.
debug1: Found key in /root/.ssh/known_hosts:9
.
.(truncated)

위에서 earth올바르게 확인 하는 것을 볼 수 있습니다 /root/.ssh/known_hosts. known_hosts이 "좋은"시나리오에서 키가 발견되었다는 또 다른 확인 :

root@earth# ssh-keygen -F neptune
# Host neptune found: line 7 

요약하면, Warning메시지가 계속 나타나는 이유 와 SSH 클라이언트가 실제로 /dev/null대신 확인하고 있는지 아는 사람 known_hosts있습니까? 내 추측이 맞다면 메시지가 다시 나타나지 않도록 클라이언트를 어떻게 수정할 수 있습니까?

모든 노드에서 Ubuntu 18.04 및이 SSH 클라이언트 버전을 사용하고 있습니다.

root@mars:~# ssh -V
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017

도움을 주셔서 미리 감사드립니다.

Gilles 'SO- 그만 사악함'

떠오르는 유일한 설명은 이 컴퓨터 또는이 계정 SSH 클라이언트 구성known_hosts파일의 알려진 공개 키를 기억하지 않도록 수정되었다는 것 입니다. 설정을 확인 GlobalKnownHostsFile하고 UserKnownHostsFile/etc/ssh/ssh_config, /etc/ssh/ssh_config.d/*하고 ~/.ssh/config.

이것은 개인 정보 보호를 강화하기 위해 수행되었을 수 있으므로 컴퓨터의 다른 관리자 (또는 나중에 컴퓨터 또는 백업을 손상시킬 수있는 사람)는 연결을 염탐하지 않는 한 사용자가 연결된 위치를 볼 수 없습니다. 를 들어 known_hosts매번 수동 피어의 공개 키를 확인하는 데 (인 불편에 추가) 오류가 발생하기 쉬운입니다 : 파일이 개인 정보 보호 및 보안 사이에 아주 좋은 타협하지 않습니다. HashKnownHosts옵션을 켜면 상당한 양의 기능과 함께 상당한 양의 프라이버시가 제공됩니다.이 옵션을 켜면 known_hosts파일 의 항목을 직접 나열 할 수 없으며 항목이 무엇인지 추측하고 추측을 확인하는 것뿐입니다 ( 각 검사는 다소 비용이 많이 들기 때문에 매우 많은 수의 잠재적 서버 이름을 무차별 대입 할 수 없습니다.)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관