어쨌든 sudo를 SSH ProxyCommand에 통합할 수 있나요?

어쨌든 sudo를 SSH ProxyCommand에 통합할 수 있나요?

직장에는 sudo ssh대상 호스트에 SSH를 연결해야 하는 SSH 점프 호스트가 있습니다. 이 같은:

ssh jump-host
sudo -u sshuser ssh final-host

이를 ProxyCommand 또는 유사한 SSH 구성 설정에 통합하여 실행할 수 있도록 하려고 하는데 ssh final-host가능한지 또는 가능한지 잘 모르겠습니다.

답변1

sudo아니요. 원격 통화를 통합 할 수 없습니다 ProxyCommand.당신의사용 사례이지만 다음과 같이 할 수 있습니다.OpenSSH 7.6(2018년 10월)- 사용:

원격 명령

서버에 성공적으로 연결한 후 원격 컴퓨터에서 실행할 명령을 지정합니다. 명령 문자열은 줄 끝까지 확장되고 사용자의 셸을 사용하여 실행됩니다. RemoteCommand다음에 설명된 토큰에 대한 매개변수를 허용합니다.토큰부분.

.ssh/config따라서 다음과 같이 입력할 수 있습니다.

Host finalhost
    RemoteCommand sudo -u sshuser ssh final-host
    RequestTTY yes
    Hostname jumphost

Host jumphost
     User jumpHostUser
     ... Other options for jumphost, if necessary

이는 터미널 하위 시스템에만 적용 sftp finalhost되므로점프 호스트, 아니요최종 호스트. git다른 도구와 함께 사용할 수 없습니다최종 호스트.

답변2

왜 릴레이 스크립트가 없나요?

점프 호스트에 스크립트가 있습니다goto.sh

sudo -u $1 ssh $2

localhost에 스크립트가 있습니다jump.sh

ssh jump-host goto.sh my-ssh-user $1

그런 다음 localhost에서 다음을 수행하십시오.

jump.sh final-host

이것은 가정이다

  • 각 로컬 사용자는 점프 호스트에 서로 다른 SSH 사용자를 가지고 있습니다.
  • goto.sh점프 호스트의 $PATH에 위치

답변3

ncFinalHost에 설치 해야 합니다 .

Host finalhost
  proxycommand sudo ssh jumphost ssh finalhost nc localhost 22

먼저 ssh점프 호스트가 있고 그 다음에는 ssh명령이 연결되는 포트인 로컬 호스트의 포트 22로 데이터를 터널링하는 마지막 호스트가 있습니다.

관련 정보