두 대의 원격 컴퓨터가 있고 그 중 하나에서 스크립트를 실행하고 있습니다.
스크립트의 일부 부분은 다른 부분에서 실행되어야 하며 그런 다음 스크립트는 추가 작업/명령을 계속 수행합니다.
어떤 이유로 ssh-without-password
연결할 수 없으며 비밀번호 프롬프트가 표시되는 것도 원하지 않습니다.
참고: 저는 그들 사이에 마운트를 공유했습니다.
답변1
SSH 비밀번호 프롬프트를 피하세요.
sudo apt-get install sshpass
패키지 설치를 위한 대체 도구는 다음과 같습니다.dpkg
그리고 설치하세요:
sudo dpkg -i sshpass_1.04-1_amd64.deb
사용 패턴은 다음과 같습니다.
sshpass -p mypassword ssh user@server
sudo
비밀번호 프롬프트를 피해야 하는 경우 :
ssh [email protected] "echo sudo_password | sudo -S ./script.sh"
마지막에 대한 설명은 다음과 같습니다. ssh 후에 실행하면 원격 서버에 비밀번호를 입력하지 않으므로 sudo
해결책은 -S를 사용하고 위와 같이 비밀번호를 sudo로 파이프하는 것입니다.sudo
답변2
비밀번호 없이 로그인하려면 비밀번호를 만들어야 합니다 SSH Keygen
.
이 주제와 수행 방법에 대한 자세한 내용은 다음을 참조하세요.
답변3
a. 먼저 사용자 a로 A에 로그인하고 인증 키 쌍을 생성합니다.
b. 이제 ssh를 사용하여 B에 사용자 b로 ~/.ssh 디렉터리를 만듭니다. (디렉토리가 이미 존재할 수도 있지만 괜찮습니다.)
ssh b@B mkdir -p .ssh
b@B의 비밀번호
씨. 마지막으로 a의 새 공개 키를 b@B:.ssh/authorized_keys에 추가하고 마지막으로 b의 비밀번호를 입력하세요.
cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B의 비밀번호: d. ssh b@B 이제 B서버의 비밀번호를 입력할 필요가 없습니다.