
다음 명령을 실행합니다. -
ssh -l admin hostname command
실행할 때마다 비밀번호를 입력하라는 메시지가 표시됩니다. ..... bash 파일에 넣을 예정이므로 비밀번호를 기본값으로 제공하려면 어떻게 해야 합니까?
답변1
다음 정보는 에서 얻었습니다.여기.
비밀번호 없이 SSH 로그인
당신의 목표:
Linux 및 OpenSSH를 사용하여 작업을 자동화하려고 합니다. 따라서 호스트 A/사용자 a에서 호스트 B/사용자 b로 자동 로그인이 필요합니다. 쉘 스크립트 내에서 ssh를 호출하려고 하므로 비밀번호를 입력하고 싶지 않습니다. 그것을하는 방법
먼저 A에 사용자 a로 로그인하고 인증 키 쌍을 생성합니다. 암호를 입력하지 마세요:
a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A
이제 ssh를 사용하여 B의 사용자 b로 ~/.ssh 디렉토리를 만듭니다. (디렉토리가 이미 존재할 수도 있지만 괜찮습니다):
a@A:~> ssh b@B mkdir -p .ssh
b@B's password:
마지막으로 a의 새 공개 키를 b@B:.ssh/authorized_keys에 추가하고 마지막으로 b의 비밀번호를 입력하세요.
a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:
이제부터 비밀번호 없이 A에서 b로 B에 로그인할 수 있습니다.
a@A:~> ssh b@B hostname
B
독자 중 한 사람의 메모: SSH 버전에 따라 다음 변경을 수행해야 할 수도 있습니다.
- .ssh/authorized_keys2에 공개 키를 넣으세요.
- .ssh의 권한을 700으로 변경하십시오.
- .ssh/authorized_keys2의 권한을 640으로 변경합니다.
답변2
"sshpass" 유틸리티를 사용하십시오. -p PASSWORD를 인수로 사용하여 ssh에 전달합니다. 'sshpass -p MyPassword ssh -l admin 호스트 이름 명령' 또는 환경 변수 'sshpass -e MYPASSWD ssh -l admin 호스트 이름 명령'에서 안전하게 사용 가능
자세한 내용은,http://www.debianadmin.com/sshpass-non-interactive-ssh-password-authentication.html