지정된 포트에서 SSH를 연결하는 방법은 무엇입니까?

지정된 포트에서 SSH를 연결하는 방법은 무엇입니까?

SSH를 사용하여 특정 포트에 '연결'하는 방법을 알고 있습니다.

ssh user@remotehostip -p XXX

SSH를 설정할 수 있는 방법이 있나요?~에서내 로컬 컴퓨터가 사용할 포트는 무엇입니까?

답변1

그것은 쉽게 가능하지 않습니다. 이를 수행하는 방법은 소스 포트가 표시되는 위치에 따라 다릅니다. 로컬에서도 마찬가지입니까, 아니면 외부 네트워크의 관점에서 볼 때 올바른 포트이면 충분합니까?

LXC 컨테이너에서 SSH 클라이언트를 실행할 수 있습니다. 저는 그런 일을 해본 적이 없어서 자세히 설명할 수 없습니다. 하지만 가상 네트워크 인터페이스를 생성하고 이 컨테이너에 연결하면 ssh이 인터페이스가 표시되는 유일한 (외부) 인터페이스이기 때문에 이 인터페이스를 사용하게 됩니다.

호스트 시스템에서는 이 인터페이스에서 패킷이 나오는 것을 감지할 수 있어야 합니다. 따라서 Netfilter의 NAT(SNAT)를 사용하여 다음과 같이 소스 주소를 다시 쓸 수 있습니다.

iptables -t nat -A POSTROUTING -o vnet0 -p tcp --dport 22 -j SNAT --to-source :1234

물론 22번 포트가 아닌 다른 포트에 연결하면 작동하지 않습니다(또는 더 복잡해집니다).

답변2

당신이 찾고 있는 명령 구문은 아마도 이것이었을 것입니다. ssh -p XXX user@remotehostip 옵션의 순서를 변경해야 합니다. 지금 시도해 보세요. 저에게 효과적입니다. 친애하는.

답변3

라우터를 통해 포트를 전달하는 경우 이에 대한 간단한 해결책은 인바운드 포트를 원하는 대로 설정하고 로컬 포트를 22로 설정하는 것입니다. 컴퓨터는 여전히 평소와 같이 22에서 SSH 연결을 사용하지만 실제로는 네트워크 외부에서 연결됩니다. 인바운드 포트를 사용합니다. 22에서 봇이 귀하의 컴퓨터를 망치는 것을 막으려는 경우에는 이렇게 해야 합니다.

이것은 귀하의 특정 문제에 도움이 되지 않을 수도 있지만 많은 사람들이 이런 이유로 여기에 오게 될 것이라고 생각합니다.

답변4

컨테이너 없이 Hauke ​​Laging의 답변을 바탕으로 SSH 클라이언트를 실행하기 전에 이 iptables 규칙을 추가하는 것으로 충분합니다.

iptables -t nat -A POSTROUTING -d <remotehostip> -p tcp --dport 22 -j SNAT --to-source :1234

SSH 세션이 열린 후에 규칙을 제거할 수 있습니다.

관련 정보