Net::SSH.start('server name', 'user')
이 "비 절대 집"을 반환의 코드. 실제로 '사용자'는 홈 디렉토리를 가지고 있습니다. 한 가지 제안 된 방법은 ~/.ssh/config를 IdentityFile에 대한 전체 경로로 수정하는 것입니다. 이것은 문제를 해결하지 못했습니다.
이 미친 부분은 irb 또는 console을 통해 호출하면 코드가 제대로 작동한다는 것입니다. 클래스 메소드 (같은 코드) 내에서 호출하려고하면 "절대적이지 않은"오류가 반환됩니다.
'사용자'는 문제없이 명령 줄을 통해 서버로 ssh 할 수도 있습니다. 서버가 우분투를 실행 중입니다.
UPDATE @Phrogz에
감사 - 이것에 대한 수정 된 설정 ENV [ 'HOME']에 '/ 홈/배포'. 그러나 $ HOME이 "."으로 설정되는 이유를 알지 못했습니다. 서버에. 그래서, 나는 다른 사람이 알아낼 때까지 "대답"없이이 질문을 떠날 것입니다. 수동으로 HOME을 설정하면 적절한 해결책보다 "해킹"과 같은 느낌이 들지만 작동합니다.
'HOME' 환경 변수가 있습니까? 'echo $ HOME' – Phrogz
@Phrogz - irb, 콘솔, 명령 줄을 통해 출력 할 경우 경로가 표시됩니다. 그러나, 클래스 (home = % x [echo $ HOME])에 변수를 설정하면 (Rails_Root/lib/class_obj) 그 값이 "."로 되돌아갑니다. – Jadon
인터프리터가 다른 경로의 쉘에서 실행중인 것 같습니다.스크립트의 절대 경로로 설정하거나 완전히 설정을 해제하면 문제가 해결됩니까? – Phrogz