이 질문에 이미 답변이 있습니다. :
댓글
Answer
Ubuntu에서는 sshpass
패키지를 선택한 다음 다음과 같이 사용합니다.
sshpass -p "YourPassword" ssh user@host
sshpass
또한 파일 또는 환경 변수에서 키보드-대화 형 암호를 전달하는 것을 지원합니다. 이는 보안이 관련된 모든 상황에서 더 적절한 옵션 일 수 있습니다. 자세한 내용은 man sshpass
를 참조하세요.
댓글
답변
대안이 스크립트 또는
명령 줄 또는 일반 텍스트 파일이면 “ 많이 대신 ssh
키를 사용하는 것이 좋습니다. 어느 쪽이든 ssh
클라이언트 스크립트가 저장된 계정에 액세스 할 수있는 모든 사용자 이 키를 사용하여 서버에 액세스 할 수 있지만 적어도 ssh
키의 경우 OpenSSH가 올바르게 지원하므로 ssh
, 필요한 경우 더 쉽게 취소 할 수 있습니다.
ssh 키를 사용하지 않아야하는 이유를 설명해야합니다.
iv id = “에서 강제 명령 (command="..."
)을 사용하는 것도 고려해보십시오. f47fc2c278 “>
파일) 클라이언트가 전체 셸이 아닌 서버에서 필요한 명령을 실행할 수있는 액세스 권한 만 갖도록합니다.
설명
먼저 다른 응답자처럼 ssh 키만 사용하는 것이 좋습니다. 그러나 서버를 제어하는 사람이 단순히 ssh 키 인증을 사용하도록 허용하지 않을 것이며 암호 인증을 사용해야한다고 가정합니다.
ControlMaster 및 ControlPath를 사용할 수 있습니다.
A를 액세스 할 수없는 서버 (Bamboo와 같은 연속 통합 서버를 생각해보십시오)로, C를 Ubuntu를 실행하는 원격 호스트로 지정하십시오.
이제 B를 사용자가 제어 할 수있는 컴퓨터로 지정하십시오. 가능하다면 적절한 B 컴퓨터를 제공하지 않으면이 대답이 작동하지 않습니다.
- 키 쌍을 만들고 B “의 authorized_keys 파일에 공개 부분을 추가합니다. A에게 개인 키를 제공하십시오. 이제 비밀번호없이 A에서 B에 로그인 할 수 있습니다.
- B에서 수동으로
ssh -M -S /tmp/controlpath C
프롬프트에서 비밀번호를 입력합니다. 그 후에는 비밀번호 ssh -S /tmp/controlpath C
없이 A에서 C에 로그인 할 수 있습니다.
A의 스크립트에서
.
B를 재부팅 할 때마다 ssh -M -S /tmp/controlpath C
연결을 다시 설정해야합니다.