SSH 사용자의 셸 액세스를 텔넷으로만 제한

SSH 사용자의 셸 액세스를 텔넷으로만 제한

텔넷을 사용하는 애플리케이션을 실행하는 CentOS 7 서버가 있습니다. 우리는 사용자가 직접 텔넷 액세스를 허용하기 위해 포트를 여는 대신 SSH를 사용하여 로그인하고 거기에서 텔넷에 연결할 수 있기를 원합니다.

그러나 이러한 사용자는 다른 항목에 전혀 액세스할 필요가 없습니다. 그래서 텔넷 인터페이스를 자동으로 여는 사용자 정의 셸을 만들거나 텔넷 명령만 허용하도록 셸을 제한할 수 있는지 궁금합니다.

물론, 다른 더 나은 솔루션이 있다면 그에 대해 듣고 싶습니다!

액세스해야 하는 특정 명령은 다음과 같습니다.

telnet <ip> 25568

<ip>구성된 몇 안 되는 로컬 IP 주소 중 하나가 됩니다 .

답변1

한 가지 방법은chsh그들의 계정다음과 같은 것을 로그인 셸로 사용하세요. 적절한 숫자가 입력될 때까지 영원히 반복되며, 이 시점에서 스크립트는 호출로 대체됩니다 telnet. 제공된 명령에 문제가 있는 경우 telnet이스케이프 코드( telnet -E ...) 를 비활성화해야 할 수 있습니다 . 그렇지 않으면 telnet제공된 각 옵션을 살펴보고 설정해야 할 옵션이 있는지 확인하세요. unset원격 SSH 클라이언트에서 전달된 특정 환경 변수는 신중하게 또는 구체적으로 설정할 수도 있습니다 (예 PATH: 로캘 등. env > whatenvisset스크립트를 사용하여 이러한 변수를 검사).

#!/bin/bash

PS3='number for remote host: '

while :; do
  select ipaddr in 192.0.2.4 192.0.2.5 192.0.2.6; do
    if [[ -n "$ipaddr" ]]; then
        exec /usr/bin/telnet "$ipaddr" 25568
    fi
  done
done

원하는 경우 원격으로 자동화하는 것이 쉬울 수 있지만 더 많은 그래픽 옵션이 있는 팝업 메뉴를 사용하는 것만큼 예쁘지는 expect않을 것입니다 .dialog

관련 정보