2012-08-06 2 views
19

이 질문을 무시하거나 자동으로 응답하는 플래그를 어떻게 추가합니까?Bypass Rsync Prompt "계속 연결 하시겠습니까?"

스크립트를 작성하려고하기 때문에이 질문은 rsync 프로세스를 멈추지 않습니다. 프롬프트가 표시되면 스크립트에 응답 할 수있는 방법이 없기 때문입니다.

답변

31

StrictHostKeyChecking 옵션을 구성 파일 또는 -o을 통해 no으로 설정하십시오.

-e "ssh -o StrictHostKeyChecking=no" 
+1

감사합니다. 내 경우 :이 확인을 비활성화하지 않고도 즉시 세마포어가 멈 춥니 다. – Dmitriy

2

그래서, work-- 안전하지 않은 답변을 많이 발견되었다하지만 더 좋은 방법이 훨씬 더 많은 작업을하지, 그래서 ': rsync

사용 e 옵션은 ssh에 옵션을 전달하는 rsync와 같은 SSH 관련 작업을 덜 안전하게 수행하는 방법을 조언하는 게시물을 검색했습니다. 아래 그림과 같이 나는 자식의 repo를 복제의 알 수없는 호스트 수동 상호 작용을 우회하는 평범한 방법을 찾고 있었다하지만 같은 언급 한 rsync를 및 기타 기술에 대한 작동합니다

[email protected]:~$ git clone [email protected]: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를 통해 자식을 위해 작동 그냥 SSH 일반적으로 일을 관련 ...

[email protected]:~$ 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 지문을 확인하는 것과 같은 특정 작업에 매우 유용합니다. 그러나 우리가하는 일로 돌아 가라.

좋습니다. 나는 여러 장소와 기계에서 내가 훔친 것 중 하나를 점검했다. 또는 늠름한 dory 인 모든 것에 대한 그럴듯한 설명이 일어난다.

'지문'은 하나의 문자열이 여러 개의 동일한 지문으로 해석 될 위험이 있으므로 인간의 편의를 위해 편도 알고리즘으로 단축 된 문자열입니다. 그것은 발생합니다, 그들은 충돌이라고합니다.

관계없이 다음 문맥에서 볼 수있는 원래 문자열로 돌아갑니다.

[email protected]:~$ 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 대신 임의의 문자로 해시처럼 보일 때 알 수 있습니다.

[email protected]:~$ 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== 

첫 번째 주석 행은 infuriatingly 한 up--을 보여주고 있지만 ">"또는 ">>"대회를 통해 간단한 리디렉션으로 제거 할 수 있습니다.

"호스트"와 트러스트를 식별하는 데 사용되지 않은 데이터를 얻으려고 최선을 다 했으므로이 ID를 ~/.ssh 디렉토리의 known_hosts 파일에 추가합니다. 이제는 알려진 호스트로 확인 될 것이므로, 당신이 어렸을 때 위에서 언급 한 프롬프트를 얻지 못할 것입니다.

나와 고착 해 주셔서 감사합니다. 여기 있습니다. bitbucket RSA 키를 추가하여 CI 워크 플로의 일부로 비대화 형 방식으로 내 git 리포지토리와 상호 작용할 수 있지만 원하는 것은 무엇이든 할 수 있습니다.

#!/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-키 스캔 -t RSA -H 호스트 이름 >> ~/스푸핑 /에서 known_hosts는 에게

은하지 마십시오

위의 것들 중 하나, 제발. 중간 공격에있는 사람을 통해 데이터 전송을 도청하는 사람을 피할 수있는 기회가 주어집니다. 기회를 잡으십시오. 차이점은 문자 그대로 RSA 키가 선의 서버 중 하나임을 확인하는 것이며 이제는 해당 정보를 비교하여 연결을 신뢰할 수 있도록 비교하는 방법을 알고 있습니다. 다른 컴퓨터와의 비교를 기억하십시오. & 네트워크는 대개 연결을 신뢰하는 능력을 향상시킵니다.