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는 이 프로세스를 자동화하는 도구입니다.