Snow Leopard에서 Lion으로 방금 업그레이드했으며 ssh를 사용하는 cron 작업이 작동을 멈췄습니다. ssh-agent가 더 이상 예상대로 작동하지 않는 것 같습니다.
Snow Leopard에서 훌륭하게 작동하는 호출 된 크론 스크립트의 bowdlerized 버전은 다음과 같습니다.
#!/bin/bash
whoami # just to verify I'm running as myself, not root
ssh-agent # just to see what it outputs
eval `ssh-agent`
ssh -vvv REMOTESERVER ls
명령 프롬프트에서 실행될 때이 스크립트는 예상대로 작동합니다.
cron에서 실행하면 작동하지 않습니다. ssh-agent 출력은 정상적으로 보입니다 :
SSH_AUTH_SOCK=/tmp/ssh-QRxPUMRxbu/agent.17147; export SSH_AUTH_SOCK;
SSH_AGENT_PID=17148; export SSH_AGENT_PID;
echo Agent pid 17148;
Agent pid 17150
그러나 ssh -vvv
결과는 개인 키를 읽어야 할 때 실패한다는 것을 보여줍니다.
debug1: Server accepts key: pkalg ssh-dss blen 818
debug2: input_userauth_pk_ok: fp ...
debug3: sign_and_send_pubkey: DSA ...
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: read_passphrase: can't open /dev/tty: Device not configured
debug2: no passphrase given, try next key
즉,의 암호 문구를 입력해야합니다. ~/.ssh/id_dsa
물론 cron 작업에서는 작동하지 않습니다.
이 모든 것은 스노우 레오파드에서 일했습니다.
키 체인 액세스 설정을 ssh
통해 ssh-agent
, 및 파일에 ssh-add
대한 암호를 읽을 .ssh/id_dsa
수 있습니다. 결과적으로 암호를 입력하지 않고도 터미널 프롬프트에서 SSH를 사용할 수 있습니다.
ssh-add
로그인 프로세스의 어느 시점에서 실행해야하는이 문제가 있습니까? 표준 bash 프롬프트에서 실행해도 cron 작업이 도움이되지는 않지만 (이상하게도 암호 문구를 묻는 메시지가 표시됩니다 ... Keychain Access 구성의 b / c가 필요하지 않다고 생각합니다).
참고 1-리디렉션하기 전에-여기 비슷한 질문이 있다는 것을 알고 있습니다 (
Mac OS X Lion 및 sshpass ). 특히 sshpass
사용하지 않는 프로그램 에 관한 것입니다. ).
참고 2-암호가없는 SSH 키가 내 문제를 해결할 수 있음을 알고 있습니다. 그러나 나는이 길을 가고 싶지 않다.