키 인증없이 SSH를 통한 무단 Rsync [안전하지 않음]


12

SSH를 통해 연결할 RSync 작업을 설정하고 싶습니다.

내 컴퓨터 (backup @ myhost)와 원격 호스트 (test @ remhost)가 있으며 ~ / something 폴더를 모든 내용으로 백업해야합니다. ssh 사용자 테스트에는 ~ / 폴더의 모든 파일 및 폴더에 대한 읽기 권한 만 있습니다. rsync를 사용하여 test @ remhost : ~ / something 폴더를 backup @ myhost : ~ / bak 폴더에 복사하고 싶습니다.

이를 위해 Ubuntu 11.10 (Oneiric)에서 BASH를 통해 다음 명령을 사용합니다.

rsync -avz -e ssh test@remhost:~/something/ ~/bak/

Enter 키를 누른 후 나는 이것을 얻습니다 :

test@remhost's password:

암호를 입력하면 rsync가 작동합니다.

위의 명령으로 암호를 자동으로 입력하고 매개 변수로 전달하거나 자동으로 입력하여 작업을 시작하려고합니다.

나는 실행을 시도 rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/했지만 여전히 암호를 요구하고 성가신입니다.

어떤 종류의 키 (RSA, DSA 또는 다른 키)에 대해서도 듣고 싶지 않습니다. 나는 로그인하고 작업을 수행하는 간단한 명령을 원합니다.

편집 : 공개 키 인증이 비활성화되어 변경할 수없는 경우 가능한 시나리오가 될 수 있습니다. 예를 들어 OpenSSH를 사용하는 경우 파일을 편집하고 sshd_config추가 하려면 서버에 대한 루트 권한이 필요 합니다 PubkeyAuthentication yes.

편집 : 이것은 마침내 나를 위해 일한 것입니다 :

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

이 방법은 암호를 일반 텍스트로 보내므로 MITM (Man-in-the-Middle) 공격에 취약하므로 안전한 것으로 간주되지 않습니다. 보다 강력한 보안을 위해 주요 탤런트를 사용하는 것이 좋습니다.


3
사람들에게 답변을하지 말라고하면 답변을받을 수 없습니다.
Mike Scott

7
이것은 무의미합니다. 키 인증에 어떤 문제가 있습니까? 키 기반 인증이 구성된 경우 해당 시점부터 원하는대로 자동으로 작업을 수행하는 간단한 명령 만 있습니다. 그래서이 문제가 무엇인지 알 수 없습니다. 암호를 "자동으로"지정하기 위해 어딘가에 저장하는 것은 내가 상상할 수있는 가장 큰 보안 구멍 중 하나입니다. 그 점은 무엇입니까?
LGB

보안에 관해 강의 할 사람이 필요하지 않습니다. 나는 이미 그 의미를 알고있다. 나는 서버에 모든 것을 그대로두고 아무것도 변경하지 않아야합니다. 귀하의 정보를 위해 이미 키를 사용하여 시도했지만 여전히 암호를 요구하므로 귀하의 주장은 유효하지 않습니다!
Sorin-Mihai Oprea

1
아닙니다. 좋은 이유로 기본적으로 이러한 매개 변수가 없습니다. 그러한 매개 변수를 원하면 Migs의 대답을보십시오.
lumbric

2
@Sorin Mihai Oprea : 글쎄, 그것이 효과가 없다면 나쁘지 않은가? 흥미 롭군 귀하의 정보를 위해 : ISP에서 일하는 인터넷 시스템 엔지니어로서 우리는 100 개 이상의 서버에서 ssh를 사용하여 키 기반 인증을 사용합니다. 그것은 우리에게 흥미 롭습니다. 작동 방식과 구성 방법을 이해하지 못한다고해서 나쁜 것을 부르지 마십시오. 당신이 옳다면, 주요 ssh 서버 구현 버그로 주목을받는 사람에게는 효과가 없을 것입니다 :) 그래서 내 agrument가 유효하지 않습니다. 동일하지 않습니다. 죄송합니다.
LGB

답변:


30

아마도 sshpass 시도 하십시오 .

사용하기에 충분히 간단 해 보입니다 ... apt를 통해서도 사용할 수 있습니다.

키를 복사하기 전에 이와 같은 것을 찾고 있었지만 어쨌든 필요한 키를 어디에서나 가져 왔으므로 시간이 걸리지 않았습니다.

암호의 공개 여부와 관련하여 해당 자습서의 고지 사항에 유의하십시오.


이 작업을 수행해야하는 모든 사람에게 :

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

당신은 가장 환영합니다. 공개 키 인증 이이 문제에 가장 적합한 솔루션이라는 여기의 나머지 사람들과 동의하지만 대안을 사용할 때의 타협점을 알고 있다면 대체 방법이 필요할 수도 있습니다.
Migs

사실 ...하지만 이것이 오픈 소스라고 불리는 이유는 무엇입니까? 여러 맛 ... 같은 결과!
Sorin-Mihai Oprea

1
단지 암호 말을하지 주셔서 감사합니다 새로운 장비 :) 도착할 때까지 OLDDDD 레거시 장비에 우리 중 일부는 단지에 의해 얻을이 필요 나쁜 해달라고 사용을들을 수 있습니다
시어 도어 하웰

7

보안 위협에보다 안전한 솔루션의 변형은 암호를 권한이 엄격한 파일에 저장하고 다음과 함께 -f플래그를 사용하는 것 입니다 shpass.

sshpass -f '/home/me/.password' rsync --progress -avz -e ssh
test@remhost:~/something/ ~/bak/

차이점은 실행중인 프로세스를 나열하면 명령 행에 비밀번호가 표시되지 않으며 이제 비밀번호가있는 파일의 경로 만 표시한다는 것입니다.


이 답변은 허용되는 답변보다 낫습니다.
vietnguyen09

1

암호가없는 공개 키 인증이 자동화 된 ssh / rsync 로그인을위한 더 나은 솔루션이 아닌 상황을 상상할 수 없습니다.

어쨌든 expect당신이하고 싶은 일을 달성 할 수있는 방법이어야합니다. 암호를 ssh로 파이프 할 수는 없지만 매우 유사합니다. 그렇게하는 방법 은 stackoverflow에서 여기에 답변되어 있습니다 .


제안에 감사하지만 실제로 sshpass가 훨씬 더 간단하다는 것을 알았습니다!
Sorin-Mihai Oprea

1

sshpass가 작동한다는 것을 알았지 만 termanal은 SSHPASS read: Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':다음과 같이 실행해야 한다고 말합니다 .

sshpass -P passphrase -p 'password' rsync /path/to hostname:/destination/path -av --progress -e ssh

어디 -P실행하여 사실을 발견 I 찾아 프롬프트를 지정 sshpass -v하고 알아내는이 문구를 찾고 password거기에있는 없습니다.


0

첫 번째 것은 passowrd/bypass암호 로그인 없이 ssh를 수행하는 것입니다. u는 ssh-copy-id -i ./ssh/id_rsa.pub머신을 대상으로 사용할 수 있습니다 .

그 시험 후 기계는 암호가없는, 다음 rsync를 코스의 다음 로컬 컴퓨터에서로가는 길에 ssh를 원격으로 할 수있는 target/server기계

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.