문제

비밀번호를 SSH에 자동으로 전달하는 방법이 있습니까? 서버에 자동으로 SSH를 원합니다 없이 SSH가 stdin 또는 파일에서 비밀번호를 읽게하여 공개 키 인증을 사용하거나 스크립트를 기대합니다.

그렇게 해야하는 이유는 CRON 작업으로 실행되는 rsync/ssh를 사용하여 파일을 서버로 백업하고 싶기 때문입니다. 이 서버는 내 홈 디렉토리를 장착합니다 ~ 후에 로그인이 성공할 때까지 ~/.ssh를 사용할 수 없으므로 공개 키 인증을 사용하는 것이 작동하지 않습니다. 기대 (1)은 CRON 작업으로 실행하고 싶기 때문에 의문의 여지가 없으며, CRON 작업이 터미널에서 실행되지 않기 때문에/SSH의 조합은 작동하지 않습니다. 해당 서버에 대한 루트 액세스 권한이 없으며 관리자가 일이 작동하는 방식을 변경하기가 어려울 것입니다.

도움이 되었습니까?

해결책

사용 sshpass.

예를 들어, 비밀번호가있을 때 password.txt 파일:

sshpass -fpassword.txt ssh username@hostname

(답에서 a 비슷한 질문)

다른 팁

Cron 작업으로 실행하고 싶기 때문에 기대는 의문의 여지가 없으며, Cron 작업이 터미널에서 실행되지 않기 때문에/SSH의 조합은 작동하지 않습니다.

CRON의 스크립트를 기대할 수 있습니다. 적어도 Python 용 "Pexpect"와 같은 라이브러리를 사용하면 가능합니다. 방금 CRON에서 pexpect scp/ssh 스크립트를 실행하기 위해 이것을 테스트했으며 CRON에서 실행되는 Python 스크립트에서 SCP 파일을 성공적으로 할 수있었습니다.

예제 코드 :

#!/usr/bin/python

import pexpect

FILE="/path/to/file"
REMOTE_FILE=""
USER="user"
HOST="example.com"
PASS="mypass"
COMMAND="scp -oPubKeyAuthentication=no %s %s@%s:%s" % (FILE, USER, HOST, REMOTE_FILE)

child = pexpect.spawn(COMMAND)
child.expect('password:')
child.sendline(PASS)
child.expect(pexpect.EOF)
print child.before

비밀번호를 전달하는 대신 공개/개인 키 시스템을 사용하십시오. 연결하려는 모든 컴퓨터의 공인 키 목록에 기계의 공개 키를 추가하십시오. 이 방법을 사용하여 SSH는 키를 자동으로 검증 할 수 있으며 암호가 필요하지 않습니다.

여기에는 지침을 찾을 수 있습니다. http://linuxproblem.org/art_9.html

질문을 더 신중하게 읽으므로 사용자 상호 작용없이 비밀번호 인증을 지원하는 다른 SSH 클라이언트를 둘러 볼 수 있습니다. 나는 Google 검색이 존재한다고 힌트했다.http://www.derkeiler.com/newsgroups/comp.security.ssh/2004-12/0134.html)

관련 stackoverflow 질문 :

이 토론은 당신이하려는 일에 대해 이야기합니다.

http://cygwin.com/ml/cygwin/2004-02/msg01449.html

관리자가 로컬 디렉토리를 만들 수 없으면 작동하지 않습니다.

SSH는 미래의 변조에 대한 초기 악수를 확보하기 위해 "믿음의 도약"이 필요합니다. (처음에는 서버가 제공하는 키를 신뢰합니다)

현재 유명하지만 잘 알려지지 않은 접근법 중 하나는 SSH-SRP를 사용하는 것입니다. 이것은 상호 암호 지식을 사용하여 SSH 세션을 안전하게 암호화하는 데 필요한 세션 암호화 키를 제공합니다.

SSH의 초기 "신뢰 나"보다 훨씬 안전하며 장기 키 저장이 필요하지 않습니다.

비밀번호를 먹기 위해 기대, pexpect 등을 사용하지 마십시오. 그렇게하면 비밀번호는 일반 텍스트 어딘가에 있어야합니다. 더 적은 비밀번호없는 공개/개인 키 쌍을 사용하는 것보다 안전합니다. 그리고 그것은 더 많은 일입니다!

옵션에 대한 토론을 위해 "SSH : The Definitive Guide"에서이 페이지를 읽으십시오.http://www.snailbook.com/faq/no-passphrase.auto.html

공개 키 인증이 어떻게 작동하는지 오해했습니다. 원격 홈 디렉토리에 액세스 할 필요가 없으며 로컬 공개 키를 리모컨에 넣으십시오. authorized_keys 파일. 주변에 Google이 있고 가이드가 많이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top