지정된 포트로 ssh를 연결하는 방법? 특정 포트에 ‘연결’하는 방법을 알고

ssh 할 때 특정 포트에 ‘연결’하는 방법을 알고 있습니다.

ssh user@remotehostip -p XXX

그러나 특정 포트와 함께 ssh를 설정하는 방법이 있습니까?

내 로컬 컴퓨터에서 사용할 포트를 지정하는 방법이 있습니까?



답변

그것은 쉽게 불가능합니다. 소스 포트를 볼 수있는 위치에 따라 수행 방법이 달라집니다. 로컬로 또는 외부 네트워크의 관점에서 올바른 포트이면 충분합니까?

LXC 컨테이너에서 SSH 클라이언트를 실행할 수 있습니다. 나는 그런 짓을 한 적이 없으므로 상세하게 설명 할 수 없습니다. 그러나 가상 네트워크 인터페이스를 만들어이 컨테이너에 연결하면 ssh이 인터페이스 가 사용되는 유일한 외부 인터페이스이므로이 인터페이스를 사용합니다.

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

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

물론 22와 다른 포트에 연결하면 작동하지 않거나 더 복잡해집니다.


답변

당신이 찾고있는 명령 구문은 이것입니다. ssh -p XXX user @ remotehostip 옵션 순서를 변경해야합니다. 지금 사용해보십시오, 그것은 나를 위해 작동합니다. 친애하는.


답변

라우터를 통해 포트를 전달하는 경우이를위한 간단한 해결책은 인바운드 포트를 원하는 것으로 설정하고 로컬 포트를 22로 설정하는 것입니다. 시스템은 여전히 ​​정상 에서처럼 22에서 ssh 연결을 수행하지만 실제로 네트워크 외부에서 연결합니다. 인바운드 포트를 사용합니다. 봇이 22시에 머신을 망치는 것을 막으려 고한다면 그렇게해야합니다.

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


답변

-Z portnum 옵션을 제안했습니다 …

여기 소스 : https://github.com/Zibri/openssh-portable

그리고 여기에 풀 요청이 있습니다 : https://github.com/openssh/openssh-portable/pull/130


답변