權限被拒絕(公鑰,鍵盤交互)得到這個錯誤,而我想從CVS CVS結帳。權限被拒絕(公鑰,鍵盤交互)
什麼是問題和如何reslove這?
代碼:
system ("CSVROOT:--- CVSRSH:--- cvs co a ");
# i have proper value in cvs root and cvs rsh .
其單獨運行,並使用SSH密鑰
權限被拒絕(公鑰,鍵盤交互)得到這個錯誤,而我想從CVS CVS結帳。權限被拒絕(公鑰,鍵盤交互)
什麼是問題和如何reslove這?
代碼:
system ("CSVROOT:--- CVSRSH:--- cvs co a ");
# i have proper value in cvs root and cvs rsh .
其單獨運行,並使用SSH密鑰
步驟來診斷錯誤:
cron
作業不相同的環境下運行),那麼很有可能是最近的答案是真的沒有。如果腳本正在從調度程序運行,如cron
,它很可能不會在您手動運行時使用相同的環境運行。我通常解決這個問題的方法是使用調度和Perl腳本之間的shell腳本:查斯後
#!/bin/bash
source /home/USERNAME/.profile
#set any other environment variables it needs like
export CSVROOT=:pserver:[email protected]:/path/to/repo
export CVSRSH=ssh
/path/to/perl/script/script.pl
所有問題的答案是YES – Tree 2010-06-11 11:23:52
跟進調查的問題:
是否該命令正常運行在/bin/sh
或其他一些shell? 要測試,執行/bin/sh
命令來啓動Bourne shell並再次手動嘗試該命令。 我不熟悉「CVSROOT:---」符號 - 是否意味着設置CVSROOT環境變量?在Bourne shell中,通常使用「=」來完成,從未看到「:」被使用。
手動運行的命令是否需要您輸入一些信息?我從來沒有見過cvs co
這樣做,但我不使用它與ssh。
嘗試將重定向添加到命令的末尾,看看有什麼文件在運行後:
system ("CSVROOT:--- CVSRSH:--- cvs co a > /tmp/log_cmd 2>&1");
也許這個問題應該去serverfault.com? – pakore 2010-06-11 11:14:17