2010-05-24 6 views
1

이것은 cgi-perl 스크립트를 시험해 보는 첫 번째 시도입니다. 내 (루트 사용자) 로컬 시스템과 원격 시스템 사이에 SSH 키를 설정했습니다. 원격 상자에서 명령을 실행하고 내 로컬 컴퓨터에서 호스팅되는 웹 페이지에 출력을 표시하려고합니다. 그러나 스크립트를 실행하는 사용자가 아파치가 아니고 루트이기 때문에 웹 페이지에서 호출 할 때 SSH 키 오류가 발생합니다. 이 문제를 해결할 수있는 방법이 있습니까?cgi-perl 스크립트를 사용하는 암호없는 SSH

+0

사용자 아파치에 대한 SSH 키를 생성을? –

+0

원격 박스에 로그인하는 사용자는 상태를 얻기 위해 sudo 권한이 필요합니다. 나는 관리자가 너무 많은 계정에 액세스 권한을 주셔서 감사하다고 생각하지 않습니다. –

+0

@AV : 그러나 루트에 대한 SSH 키 쌍을 만드는 것도 좋은 생각이 아닙니다. 특히 이것이 자동화 된 웹 프로세스에 사용되어야하는 경우. –

답변

2

당신은 이미 하나를 만들고, 제한된 계정을 가지고있는 SSH 키를 생성하고 사용자가 (예를 들어 more about sudoers, visudo를 통해) /etc/sudoers 파일에 sudo를 통해 실행하도록 허용되어야하는 명령을 추가 할 경우. 이것은 가장 안전한 접근 방법입니다.
이러한 방법으로 사용자를 제한 할 수도 있습니다. 만 이러한 명령을 실행할 수 있습니다.

를 들어 펄에 대해 잘 모르겠지만, 보통 당신은 SSH를 통해 로그인해야하는 사용자 지정할 수 있습니다

ssh [email protected] 

업데이트 :

당신이 Net::SSH::Perl 모듈을 사용하고 있습니까? 그렇다면, 바로 user 따라 설정 :

my $host = "perlhowto.com"; 
my $user = "user"; 
my $password = "password"; 

#-- set up a new connection 
my $ssh = Net::SSH::Perl->new($host); 
#-- authenticate 
$ssh->login($user, $pass); 

는 (난 그냥 복사 perlhowto.com에서이 코드를 붙여 넣기)

+0

좋습니다. 그 다음에는 원격 호스트의 관리자와 대화하여 해당 액세스 권한을 설정해야합니다. 그러나 웹 페이지에서 호출 할 때 스크립트를 루트로 실행할 수있는 방법이 있습니까? –

+0

@AV : 앞에서 말했듯이 일반적으로 SSH를 통해 로그인해야하는 사용자를 지정할 수 있습니다. 'user @ host'는 사용자의 경우'root @ host'입니다. 하지만 루트 권한으로 ssh를 사용할 수 없게 될 수도 있습니다. –

+0

사실, 로컬 시스템의 루트 사용자는 "dummy @ remote"로 연결하고 더미 사용자에게는 상태를 가져올 수있는 권한이 부여됩니다. 예, 더미 사용자와 연결된 apache의 ssh 키를 가져 오는 경로를 따라하려고 시도합니다. –