![SSH를 통해 컴퓨터에 연결할 때 파일에서 비밀번호 얻기](https://linux55.com/image/94941/SSH%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EB%95%8C%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%20%EC%96%BB%EA%B8%B0.png)
SSH를 통해 원격 시스템에 연결하고 싶지만 비밀번호를 입력하는 대신 다른 파일에서 리디렉션하고 싶습니다.
password.txt
그래서 비밀번호를 저장하는 파일이 있습니다. File.sh
내 bash 파일입니다.
존재하다File.sh
#!/bin/bash
ssh -T [email protected]
파일을 실행하는 동안 다음을 수행했습니다.
./File.sh < password.txt
하지만 어쨌든 비밀번호를 묻는 메시지가 표시됩니다.
파일에서 비밀번호를 입력하려면 어떻게 해야 합니까?
답변1
"파일의 비밀번호"를 사용하는 SSH는 공개 키 인증에 자주 사용됩니다. 키 쌍 생성을 사용하여 ssh-keygen
공개 키를 다른 호스트에 업로드합니다.
scp ./.ssh/id_rsa.pub [email protected]:~/
다음과 같이 배치하십시오 ~/.ssh/authorized_keys
.
ssh [email protected]
mkdir ~/.ssh
mv ~/id_rsa.pub ~/.ssh/authorized_keys
또는 authorized_keys
파일이 이미 존재하는 경우:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
적절한 권한을 설정합니다(파일의 경우 600, 디렉터리의 경우 700).
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
새로운 SSH 세션을 시작하십시오.
답변2
sshpass
다음 방법을 사용하여 이 작업을 수행 할 수 있습니다 .
sshpass -f password.txt ssh -T [email protected]
답변3
#!/usr/bin/expect -f
spawn ssh shw@hostname
expect -exact "shw@hostname's password: "
send -- "PASSWORD\r"
expect "$ "
interact
Expect는 이 프로세스를 자동화하는 도구입니다.