![어쨌든 sudo를 SSH ProxyCommand에 통합할 수 있나요?](https://linux55.com/image/74253/%EC%96%B4%EC%A8%8C%EB%93%A0%20sudo%EB%A5%BC%20SSH%20ProxyCommand%EC%97%90%20%ED%86%B5%ED%95%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
직장에는 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
nc
FinalHost에 설치 해야 합니다 .
Host finalhost
proxycommand sudo ssh jumphost ssh finalhost nc localhost 22
먼저 ssh
점프 호스트가 있고 그 다음에는 ssh
명령이 연결되는 포트인 로컬 호스트의 포트 22로 데이터를 터널링하는 마지막 호스트가 있습니다.