비밀번호 파일을 통한 서버에 대한 SSH 로그인이 작동하지 않는 이유 [닫기]

비밀번호 파일을 통한 서버에 대한 SSH 로그인이 작동하지 않는 이유 [닫기]

비밀번호를 입력하지 않고 SSH를 통해 서버에 로그인하고 싶어서 파일을 사용합니다. 하지만 이건 작동하지 않아

c52594xx@bsa0483:~$ ls login.txt
login.txt

**c52594xx@bsa0483:~$ ssh bsa10881.fra1 <<login.txt
> ^C
c52594xx@bsa0483:~$
c52594xx@bsa0483:~$ ssh bsa10881.fra1 << login.txt
> ^C
c52594xx@bsa0483:~$
c52594xx@bsa0483:~$ ssh [email protected] <<login.txt
> ^C

c52594xx@bsa0483:~$ cat /etc/issue
Ubuntu 9.10 \n \l**

답변1

다른 여러 프로그램과 마찬가지로 SSH는 표준 입력에서 비밀번호 입력을 받지 않고 stdin에서 명시적으로 입력하므로 /dev/tty비밀번호 입력을 (쉽게) 리디렉션할 수 없습니다.

이는 SSH에 항상 선호되는 비대화형 인증 형식인 키 인증이 있기 때문입니다.

예를 들어, bsa0483 호스트에서 SSH 키 쌍을 생성한 다음 ssh-keygen -t rsa실행하고 비밀번호를 입력(한 번만)하거나 간단히 bsa0483에서 bsa10881로 복사하여 bsa10881에 해당 공개 키를 설치할 수 있습니다.ssh-copy-id bsa10881~/.ssh/id_rsa.pub~/.ssh/authorized_keys

기본적으로 ssh-keygenSSH 개인 키를 비밀번호로 암호화해야 합니다. 이 작업을 수행하면(다른 작업은 수행하지 않음) 키를 사용할 때마다 암호를 입력하라는 메시지가 표시됩니다. 그러나 자동화 목적을 위해 비밀번호를 설정하지 않도록 선택할 수 있습니다. 이렇게 하면 비밀번호나 키 비밀번호 문구를 입력하지 않고도 로그인할 수 있으며 스크립트에 비밀번호를 삽입하는 것보다 더 안전하지 않습니다.

ssh-keygen( SSH 클라이언트가 개인 키가 적절하게 보호되는지 확인하고 SSH 클라이언트가 다른 사람이 해당 키를 읽을 수 있음을 발견하면 큰 경고를 출력하거나 키 사용을 완전히 중지하므로 이는 약간 더 안전할 수 있습니다. .)

그러나 SSH 인증 에이전트를 사용하면 보안과 편의성의 최상의 조합을 얻을 수 있지만 일회성 설정이 더 많이 필요합니다. SSH 키 쌍(예: bsa0483)이 있는 시스템에 로그인하고 인증 에이전트를 시작한 다음(아마도 로그인 스크립트에서?) ssh-add이를 사용하여 SSH 키를 제공하고 키 비밀번호를 한 번 입력할 수 있습니다. 이제 에이전트가 실행되는 한 키 인증을 사용하여 이 호스트에서 필요한 만큼 나가는 SSH 연결을 만들 수 있습니다.키 비밀번호를 입력할 필요가 없습니다..

신뢰할 수 있는 호스트 간에는 프록시 연결 전달을 사용하는 옵션도 있으므로 인증 프록시가 호스트 A에 있고 공개 키를 호스트 B, C 및 D에 복사한 경우 A에서 B로 이동할 수 있습니다. SSH 수행그런 다음 B에서 C 또는 D로 계속 진행하세요.어떤 순서로든 비밀번호나 패스프레이즈를 묻는 메시지는 표시되지 않습니다.

그러나 비밀번호를 수동으로 입력하지 않고 반드시 SSH 비밀번호 인증을 사용해야 한다면 이 sshpass도구를 설치하십시오. apt-get install sshpass아주 오래된 Ubuntu에서 사용 가능하기를 바랍니다. 자세한 내용은:https://stackoverflow.com/q/12202587/9197000

관련 정보