Właśnie zaktualizowałem wersję Snow Leopard do Lion, a moje zadania cron używające ssh przestały działać. Wygląda na to, że ssh-agent nie działa już zgodnie z oczekiwaniami.
Oto pełna wersja mojego skryptu wywoływanego z crona, który świetnie działał w systemie Snow Leopard:
#!/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
Po uruchomieniu z wiersza polecenia ten skrypt działa zgodnie z oczekiwaniami.
Po uruchomieniu z crona to nie działa. Dane wyjściowe ssh-agent wyglądają normalnie:
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
Ale dane ssh -vvv
wyjściowe pokazują, że nie powiedzie się, gdy klucz prywatny powinien zostać odczytany:
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
Innymi słowy, oczekuje ode mnie wpisania hasła ~/.ssh/id_dsa
, co oczywiście nie działa w zadaniach crona.
Wszystko to działało w Snow Leopard.
Zauważ, że mam konfigurację dostępu do pęku kluczy, dzięki czemu ssh
, ssh-agent
i ssh-add
mogą czytać moje hasło do mojego .ssh/id_dsa
pliku - w wyniku mogę ssh z terminala szybka bez konieczności wprowadzić moje hasło.
Czy to problem, który muszę uruchomić ssh-add
w pewnym momencie procesu logowania? Uruchomienie go ze standardowego monitu bash nie pomaga w wykonaniu zadania cron (chociaż, co dziwne, monituje mnie o moje hasło ... które moim zdaniem nie jest konieczne b / c konfiguracji dostępu do pęku kluczy).
UWAGA 1 - przed przekierowaniem mnie - wiem, że jest tutaj podobne pytanie (
Mac OS X Lion i sshpass ), ale dotyczy ono konkretnie programu sshpass
, którego nie używam (chociaż wierzę, że na to pytanie również odpowiem ).
UWAGA 2 - Zdaję sobie sprawę, że klucze SSH bez hasła mogłyby rozwiązać mój problem; jednak wolałbym nie iść tą drogą.