
저는 현재 Active Directory에 연결된 Linux 상자를 설정하고 있습니다. 이 상자를 사용하면 사용자가 AD 사용자 이름과 비밀번호를 사용하여 SSH에 접속하여 정보를 수집할 수 있습니다(상자 A). 문제는 /etc/bash.bashrc에 함수를 만들려고 하므로 사용자가 "get_info"를 입력해야 한다는 것입니다. 예를 들어 이 함수는 SSH를 통해 원격 시스템(상자 B)에 명령을 실행하고 정보를 출력합니다. 사용자에게 돌아갑니다.
문제는 Box A에서 rsa 키를 생성하고 이를 Box B authenticate_keys에 추가했는데 제대로 작동한다는 것입니다. 제가 겪고 있는 문제는 현재 사용자와 Box A에 로그인하는 새 사용자에 대해 이를 한 번 설정하는 방법입니다.
내가 현재하고있는 것보다 더 나은 접근 방식이 있습니까? 기본적으로는 원격 상자에 연결하고, 명령을 실행하고, 정보를 사용자에게 다시 출력하기만 하면 됩니다. 새로운 사용자가 RSA 키를 생성하지 않고도 스크립트를 통해 원격 상자에 연결할 수 있도록 하려면 어떻게 해야 합니까?
get_info 기능은 'get_info 012345' 값을 제공하고 결과를 반환합니다.
답변1
필요한 것:
- 사용자가 공유한 키
- 서버에 공통 스크립트 생성
SSH 구성에서 사용자를 특정 명령으로 제한하십시오.
command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= 사용자
원격 서버에 대해 ssh 명령을 실행하고 서버에서 스크립트를 실행한 다음 출력하는 스크립트를 로컬 상자 또는 홈 폴더에 생성합니다.
원격 세션에 입력이 필요한 경우 로컬 스크립트를 실행할 수 있습니다.
./local.sh 01234
다음을 실행합니다.
ssh user@remote '/bin/myscript.sh $1'
다음과 같이 해석됩니다.
ssh user@remote '/bin/myscript.sh 01234
답변2
를 변경하는 대신 /etc/bash.bashrc
localhost의 모든 사용자를 위한 표준 PATH에 있는 프로그램(아마도 bash로 작성)을 생성해 보는 것은 어떨까요? 이 프로그램은 로컬 시스템의 공통 개인 키를 가리키는 플래그를 사용하여 ssh를 호출할 수 있습니다(예: /etc 또는 /etc/opt/ 어딘가에 넣을 수 있음). 원격 시스템에는 공개 키를 사용하는 사람은 누구나 하나의 명령(예: 정보 명령)만 실행할 수 있도록 수정된 공개 키 파일이 포함된 단일 계정이 있습니다(ssh 매뉴얼 페이지 참조).