SSH 프록시 및 시간 초과

SSH 프록시 및 시간 초과

내 시스템을 업데이트하기 위해 스크립트를 사용하고 있습니다.

cd /opt/
chmod 600 /opt/updater/.ssh/.pk
ssh-agent bash -c 'ssh-add /opt/updater/.ssh/.pk; git stash; git pull origin master'
/opt/updater/bin/updater.sh

내 문제는 /opt/updater/.ssh/.pk읽을 수 없게 되거나 SSH 키가 변경되면 프로세스가 다음과 같이 중단된다는 것입니다.

  ssh-agent bash -c 'ssh-add /opt/RDE/rdeupdater/.ssh/.pk; git stash; git pull origin master;EX=$?;echo "-$EX" '
/opt/RDE/rdeupdater/.ssh/.pk: No such file or directory
No local changes to save
user@git's password:

이 문제를 어떻게 해결할 수 있나요? 이 시스템에서는 Expect가 허용되지 않습니다.

답변1

비결은 ssh비밀번호 인증을 시도하면 즉시 실패한다는 것입니다(따라서 항상 공개/개인 키 인증만 수행합니다).

환경 변수를 GIT_SSH쉘 스크립트로 설정하여 ssh일반 명령을 포함하도록 확장 할 수 있지만 일반적으로 저장소가 있는 서버 -o "PasswordAuthentication no"에 액세스할 수 없는 경우 다음을 설정할 수도 있습니다 .git~/.ssh_config

Host server_with_remote_git_repo_name
    PasswordAuthentication no

그런 다음 비밀번호 액세스를 사용해야 하는 경우 다음을 server_with_remote_git_repo_name수행하여 재정의하세요.ssh -o "PasswordAuthentication yes" server_with_remote_git_repo_name

관련 정보