이것은 cgi-perl 스크립트를 시험해 보는 첫 번째 시도입니다. 내 (루트 사용자) 로컬 시스템과 원격 시스템 사이에 SSH 키를 설정했습니다. 원격 상자에서 명령을 실행하고 내 로컬 컴퓨터에서 호스팅되는 웹 페이지에 출력을 표시하려고합니다. 그러나 스크립트를 실행하는 사용자가 아파치가 아니고 루트이기 때문에 웹 페이지에서 호출 할 때 SSH 키 오류가 발생합니다. 이 문제를 해결할 수있는 방법이 있습니까?cgi-perl 스크립트를 사용하는 암호없는 SSH
답변
당신은 이미 하나를 만들고, 제한된 계정을 가지고있는 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
에서이 코드를 붙여 넣기)
좋습니다. 그 다음에는 원격 호스트의 관리자와 대화하여 해당 액세스 권한을 설정해야합니다. 그러나 웹 페이지에서 호출 할 때 스크립트를 루트로 실행할 수있는 방법이 있습니까? –
@AV : 앞에서 말했듯이 일반적으로 SSH를 통해 로그인해야하는 사용자를 지정할 수 있습니다. 'user @ host'는 사용자의 경우'root @ host'입니다. 하지만 루트 권한으로 ssh를 사용할 수 없게 될 수도 있습니다. –
사실, 로컬 시스템의 루트 사용자는 "dummy @ remote"로 연결하고 더미 사용자에게는 상태를 가져올 수있는 권한이 부여됩니다. 예, 더미 사용자와 연결된 apache의 ssh 키를 가져 오는 경로를 따라하려고 시도합니다. –
사용자 아파치에 대한 SSH 키를 생성을? –
원격 박스에 로그인하는 사용자는 상태를 얻기 위해 sudo 권한이 필요합니다. 나는 관리자가 너무 많은 계정에 액세스 권한을 주셔서 감사하다고 생각하지 않습니다. –
@AV : 그러나 루트에 대한 SSH 키 쌍을 만드는 것도 좋은 생각이 아닙니다. 특히 이것이 자동화 된 웹 프로세스에 사용되어야하는 경우. –