그래서 아래 그림과 같이 git repo 복제의 알 수없는 호스트 수동 상호 작용을 우회하는 평범한 방법을 찾고있었습니다.
brad@computer:~$ git clone git@bitbucket.org:viperks/viperks-api.git
Cloning into 'viperks-api'...
The authenticity of host 'bitbucket.org (104.192.143.3)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?
RSA 키 지문에 유의하십시오 ...
그래서 이것은 SSH 일입니다. 이것은 SSH를 통한 git 및 일반적으로 SSH 관련 일에 효과적입니다 ...
brad@computer:~$ nmap bitbucket.org --script ssh-hostkey
Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-05 10:21 EDT
Nmap scan report for bitbucket.org (104.192.143.3)
Host is up (0.032s latency).
Other addresses for bitbucket.org (not scanned): 104.192.143.2 104.192.143.1 2401:1d80:1010::150
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 1024 35:ee:d7:b8:ef:d7:79:e2:c6:43:9e:ab:40:6f:50:74 (DSA)
|_ 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40 (RSA)
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 42.42 seconds
먼저 일일 드라이버에 nmap을 설치하십시오. nmap은 개방 포트 감지 및 수동으로 SSH 지문 확인과 같은 특정 사항에 매우 유용합니다. 그러나 우리가하고있는 일로 돌아갑니다.
좋은. 내가 확인한 여러 장소와 기계에서 타협을 당했거나 혹스런 도리가되는 모든 것에 대한 더 그럴듯한 설명이 일어나고 있습니다.
이 '지문'은 동일한 지문으로 해석되는 둘 이상의 문자열 위험에 대한 인간 편의를 위해 단방향 알고리즘으로 단축 된 문자열입니다. 이런 일을 충돌이라고합니다.
어쨌든 아래 컨텍스트에서 볼 수있는 원래 문자열로 돌아갑니다.
brad@computer:~$ ssh-keyscan bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
no hostkey alg
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-129
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-123
no hostkey alg
따라서 사전에 원래 호스트로부터 신원 확인 양식을 요청하는 방법이 있습니다.
이 시점에서 수동으로 문자열이 일치하고 문자열이 일치하고 지문을 생성하는 기본 데이터가 있으며 나중에 해당 기본 데이터 (충돌 방지)를 요청할 수 있습니다.
이제 호스트 진위성을 묻지 않는 방식으로 해당 문자열을 사용하려면 ...
이 경우 known_hosts 파일은 일반 텍스트 항목을 사용하지 않습니다. 해시 된 항목은 xyz.com 또는 123.45.67.89 대신 임의의 문자가있는 해시처럼 보입니다.
brad@computer:~$ ssh-keyscan -t rsa -H bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
첫 번째 주석 행은 불분명하게 표시되지만 ">"또는 ">>"규칙을 통해 간단한 리디렉션으로 제거 할 수 있습니다.
"호스트"와 트러스트를 식별하는 데 사용될 오염되지 않은 데이터를 얻기 위해 최선을 다 했으므로이 식별 정보를 ~ / .ssh 디렉토리의 known_hosts 파일에 추가합니다. 이제 알려진 호스트로 식별되므로, 어릴 때 위에서 언급 한 프롬프트가 표시되지 않습니다.
나를 고집해 주셔서 감사합니다. CI 워크 플로의 일부로 비 대화식 방식으로 git 리포지토리와 상호 작용할 수 있도록 원하는 비트 버킷 RSA 키를 추가하고 있습니다.
#!/bin/bash
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.old && echo "|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==" >> ~/.ssh/known_hosts
그래서 오늘 당신이 처녀를 유지하는 방법입니다. 자신의 시간에 비슷한 지시를 수행하여 github로 동일한 작업을 수행 할 수 있습니다.
스택 오버플로 게시물이 너무 많아서 검사하지 않고 프로그래밍 방식으로 키를 맹목적으로 추가하도록 지시했습니다. 다른 네트워크의 다른 컴퓨터에서 키를 더 많이 확인할수록 호스트가 호스트라는 사실에 대해 더 많은 신뢰를 가질 수 있으며,이 보안 계층에서 기대할 수있는 최선의 방법입니다.
잘못된
ssh -oStrictHostKeyChecking = 호스트 이름 없음 [명령]
잘못된
ssh-keyscan -t rsa -H 호스트 이름 >> ~ / .ssh / known_hosts
위의 작업 중 하나를 수행하지 마십시오. 중간 공격에서 사람을 통해 데이터 전송을 도청하는 사람을 피할 수있는 기회가 주어집니다. 차이점은 문자 그대로 보유한 RSA 키가 실제 서버 중 하나임을 확인하는 것입니다. 이제는 해당 정보를 비교하여 연결을 신뢰할 수있는 방법을 알고 있습니다. 다른 컴퓨터 및 네트워크에서 더 많은 비교를하면 일반적으로 연결을 신뢰할 수있는 능력이 향상됩니다.