다중 홉 양말 프록시를 구현하는 방법은 무엇입니까?

다중 홉 양말 프록시를 구현하는 방법은 무엇입니까?

나는 출신SOCKS를 통한 jvisualVM 사용에 대한 권장 사항. 그러나 다소 복잡한 토폴로지가 있습니다.

랩톱에서 시작하여 관찰하려는 컴퓨터에 도달하려면 두 개의 중간 호스트를 거쳐야 합니다.

LaptopAtHome -> HostAtWork -> AWS-Bastion -> ThingToObserve

ssh-add를 사용하여 이러한 홉을 만드는 데 필요한 키를 처리할 수 있습니다. AWS-Bastion에 SSH 개인 키를 남겨두어서는 안 됩니다. 다음과 같이 이 모든 것을 어떻게 설정합니까?

ssh -v -D 9696 thingtobserve.example.com

내 노트북에서 반대편으로 웜홀을 열까요?

또한 첫 번째 홉에는 두 번째 및 세 번째 홉과 다른 개인 키를 사용해야 합니다. ssh-add를 사용하여 두 키를 모두 시작 호스트에 로드했습니다.

일부 연구에 따르면 다음과 같은 시도가 이루어졌습니다.

#!/bin/sh

noknown="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"

ssh -A -t -t -v -L9999:localhost:9932 first ssh -A $noknown -t ec2-user@bastion ssh -A $noknown -t -D 9932 ec2-user@target

"권한 거부"로 인해 실패합니다.

나는 간단한 첫 번째 단계를 시도했습니다.

ssh -t -v -A first ssh -A -t -v $noknown ec2-user@bastion

그리고 로그에는 에이전트의 추가 키가 "bastion"에 제공되지 않았음을 보여줍니다. ssh -L은 시작점에 표시합니다.

편집하다

여기서 문제의 일부는 제가 첫 번째 홉 대상으로 사용하려고 했던 내 사무실의 호스트 중 하나와 관련된 몇 가지 알 수 없는 문제인 것으로 나타났습니다. 다른 것으로 바꾸면 전체적으로 멋진 쉘을 얻을 수 있습니다. 구할 수 없는 게 양말 에이전트예요.

이 질문에 대한 의견은 다중 홉 양말 에이전트가 실제로 개념적으로 어렵다는 것을 암시하므로 이것이 이 질문의 실제 문제입니다.

편집 2

이 페이지다중 홉 양말에 관한 것이라고 주장하지만 포트 번호의 철자가 틀린 것 같습니다.

답변1

글쎄, 나는 답을 찾았습니다:

ssh -t -v -A -D9932 -L9933:localhost:9933 -L9934:localhost:9934 FIRST-HOST ssh -D9933 -L9934:localhost:9934 -A -t -v  ec2-user@SECOND-HOST ssh -D9934 -A -t -v ec2-user@THIRD-HOST

9934를 양말 프록시 포트로 사용하십시오.

원하는 경우 분명히 .ssh/config매핑될 수 있습니다. 내 질문의 두 번째 링크에 대한 크레딧입니다.

답변2

다중 홉 프록시를 사용하는 대신 중간 호스트를 SSH 릴레이로 사용하여 요새에 액세스합니다. 여기에서 SOCKS 프록시를 설정할 수 있습니다.

작업자 호스트에 대한 액세스 구성

먼저 액세스 구성 host-at-work:

Host host-at-work
User myself

요새에 대한 액세스 구성

그런 다음 요새에 대한 액세스를 구성합니다. SSH 릴레이를 사용하여 host-at-work요새에 연결합니다.

Host bastion
User myself
ProxyCommand ssh host-at-work -W bastion:22

이제 다음을 사용하여 요새에 연결할 수 있습니다.

ssh bastion

SOCKS 프록시 설정

이제 요새에 연결할 수 있으므로 SOCKS 프록시를 설정할 수 있습니다.

ssh bastion -D 9932 -N

SSH의 마지막 호스트에 연결하고 싶으신가요?

그런 다음 SSH에 요새를 릴레이로 사용하도록 요청하고 싶습니다.

Host thing-to-observe
User myself
ProxyCommand ssh bastion -W thing-to-observe:22

그러면 다음을 수행할 수 있습니다.

ssh thing-to-observe

관련 정보