지정된 포트로 ssh를 연결하는 방법?


56

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

ssh user@remotehostip -p XXX

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

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


서버 포트 또는 클라이언트 수신 포트를 변경 했습니까? 편집 : 좋아, 내 제안을 삭제했습니다. 좋아하는.
polym

클라이언트의 포트를 지정하고 싶습니다
kwagjj

3
@kwagjj 소스 포트를 의미합니까? 그렇지 않으면 소스 포트를 제어 할 수 없습니다.
Patrick

답변:


15

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

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

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

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

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


1
고마워 ...하지만이 정보는 내 리그에서 벗어났다고 생각하지만 ...하지만 여전히 감사합니다 :) 그러나 내가 정말로하고있는 일로 정말로 막 다른 골목에 부딪쳤다면 아마도 내 머리를 이것으로 넘길 것입니다. 다시 답변 :)
kwagjj

예, 그 문제에 대한 정보를 찾기가 정말 어렵습니다. 나는 그것을 발견 sshfs했고 누군가 가이 명령으로 작동한다고 말했지만 믿지 않습니다. 답을 찾으면 알려주십시오 :)!
polym

@kwagjj 완전한 (텍스트 모드) Linux를 실제 VM으로 설치하는 것이 더 이해하기 쉽습니다. SSH에만이 VM (또는 특정 계정)을 사용하는 경우 VM Netfilter를 사용하여이 VM을 수행 할 수 있습니다.
Hauke ​​Laging

6

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


2

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

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


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.