비밀번호를 사용하여 원격 사용자 계정에 로그인하고 일련의 명령을 실행하려면 어떻게 해야 합니까?

비밀번호를 사용하여 원격 사용자 계정에 로그인하고 일련의 명령을 실행하려면 어떻게 해야 합니까?

원격 컴퓨터에서 명령을 실행하고 싶습니다. 원격 사용자는 비밀번호 인증이 필요합니다. 다음 샘플 스크립트를 사용할 때 다음 오류가 발생합니다. 이는 샘플 스크립트 applmgr.sh의 내용입니다.

#!/bin/bash    
ssh [email protected] -c "cd ; touch testing ; cp testing testing_is ;mv testing 
working" <<!
applmgr      ## Password of applmgr user##
!

실행되면 다음과 같은 메시지가 나타납니다.

[oracle@dbsrvr ~]$ sh applmgr.sh
standard in must be a tty

답변1

스크립트에 비밀번호를 입력하는 것은 매우 잘못된 보안 관행입니다. 하지만 만약 당신이~ 해야 하다그 이유는 이러한 목적으로 이와 같은 도구를 사용할 수 있기 때문입니다 sshpass.

그러나 이러한 작업에는 키 쌍 ​​인증 사용을 고려하는 것이 좋습니다.

호스트 시스템에 있고 a.example.com실행할 작업이 있는 경우 b.example.com다음 명령을 사용하여 설정할 수 있습니다.

  • ssh-keygen- 인증을 위한 공개/개인 키 쌍이 생성됩니다.
  • ssh-copy-id [email protected]- 원격 호스트에서 사용할 공개 키를 설정합니다. 이 명령을 실행하면 비밀번호를 묻는 메시지가 표시되지만 이후에는 인증에 키가 사용됩니다.

그 시점부터 예를 들어 원격 호스트에서 실행할 수 있습니다.ssh [email protected] 'command'command

답변2

expect애플리케이션과 상호작용하고 사용자 행동을 시뮬레이션하기 위해 구축된 시스템인 명령을 살펴보세요 .

(물론 비밀번호를 버리고 키를 사용하는 것이 진정한 해결책입니다)

관련 정보