답변:
올바른 회사 방화벽은 포트에 관계없이 트래픽을 검사하므로 포트 변경이 작동하지 않을 수 있습니다.
서버를 제어하고 여전히 시도하려면 sshd 포트를 포트 80으로 변경할 수 있습니다. 경고 포트 80 (서버)에서 실행중인 다른 것이 있으면 작동하지 않으며 완전히 의미 할 것입니다 서버에 대한 SSH 액세스가 끊어집니다!
을 수정 /etc/ssh/sshd_config
하고로 변경 Port
해야 80
합니다. 그런 다음 실행
sudo restart ssh
그런 다음 연결하십시오.
ssh user@host -p80
bzr 경로는 다음과 같습니다. bzr+ssh://host:80/path/
또 다른 방법은 WebDav를 사용하는 것입니다. 방화벽 문제는 포트 80에서 발생하기 때문에 방화벽 문제를 완전히 극복해야하지만 Apache를 실행하고 여러 가지를 설정해야합니다.
VPN은 옵션 일 수 있지만 ssh
잠겨 있으면 제외 될 것으로 예상됩니다.
당신은 네트워크 관리자에게 말씀을 원할 수도 있습니다. 당신은 무언가를해야하고 그들은 당신을 막고 있습니다. 그들이 차단 ssh
해야 할 이유가 있다면 , 그것을 상당히 부정적으로 회피하려는 극단적 인 시도를 보게 될 것입니다 ...
간단히 말해 그들과 대화하는 것이 더 안전 할 수 있습니다.
Port
하려면 /etc/ssh/sshd_config
파일의 각 포트마다 하나씩 두 줄 을 두어 포트 22와 80 모두에서 수신 대기하게 할 수 있습니다.
방화벽이 허용하는 경우 모든 포트에서 ssh를 실행할 수 있지만 ssh 서버는 해당 포트에서 수신 대기해야합니다. 방화벽이있는 대부분의 장소는 해당 포트의 트래픽을 분석하고 HTTP가 아닌 것을 차단하기 때문에 포트 80이 작동하지 않을 수 있습니다. 그러나 일반적으로 HTTPS 포트 인 포트 443은 종종 작동합니다. SSH와 HTTPS는 필터링 소프트웨어와 서로 매우 유사하기 때문에 SSH 세션은 HTTPS 세션처럼 보일 것입니다. (HTTPS와 SSH를 구별 할 수 있으므로 방화벽이 충분히 정교하면 작동하지 않습니다.)
서버를 제어 할 수있는 경우 22 (일반 ssh 포트) 외에 포트 443에서 수신 대기하십시오. 포트를 구성 할 수 있습니다 /etc/ssh/sshd_config
: 라인 추가
Port 443
Port 22
그 외에도 이미 있어야합니다. 이것은 ssh 서버가 HTTPS 서버가 아니라고 가정합니다. 그렇다면 방화벽에서 사용할 수있는 다른 포트를 찾거나 다른 ssh 서버를 찾으십시오 (아래 전달 참조).
웹 브라우저에서 웹 프록시를 설정할 필요가없는 경우 직접 연결을 시도 할 수 있습니다.
ssh -p 443 myserver.example.com
그래도 문제가 해결되지 않으면 다음에서 별칭을 정의하십시오 ~/.ssh/config
.
Host myserver
HostName myserver.example.com
Port 443
웹 브라우저에서 웹 프록시를 설정해야하는 경우 ssh에게 프록시를 통과하도록 지시하십시오. 코르크 마개를 설치하십시오 . 당신이 같은 별칭을 정의 ~/.ssh/config
, 어디에 http://proxy.acme.com:3128/
당신이 외부로 HTTPS에 사용하는 프록시 (적절한 호스트 이름과 포트로 대체)입니다 :
Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p
위의 기술 중 하나를 사용하여 외부 시스템에 액세스 할 수 있지만 관심이있는 시스템에는 도달 할 수없는 경우이를 사용하여 연결을 전달하십시오. 라는 컴퓨터에 ssh를 사용할 수 mygateway
있고 SSH 서버에 연결 mytarget
하려는 경우 netcat-openbsd 를 설치하십시오 mygateway
(또는 Ubuntu를 실행하지 않는 경우 nc
명령 이 있는지 확인하십시오 ). 이것을 당신의 것으로 넣으십시오 ~/.ssh/config
:
Host mytarget
ProxyCommand ssh mygateway nc %h %p
연결하려는 호스트가 이미 Apache를 실행 중이고 포트 443에서 수신 대기 중이고 해당 호스트를 제어 할 수있는 경우 SSH 연결을 승인하고 전달하도록이 Apache를 설정할 수 있습니다. HTTP를 통한 터널링 SSH (S)를 참조하십시오 .
방금 정교한 솔루션을 읽었습니다.
http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html
홈 서버가 포트 80에서 웹 서버를 실행하더라도 포트 80에서 SSH 홈을 사용할 수 있습니다.
홈 서버가 Apache를 실행한다고 가정합니다. 아이디어는 서버에서 mod_proxy를 활성화 한 다음 localhost (proxy.conf)에 연결하도록 제한하는 것입니다.
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Deny from all
</Proxy>
<Proxy localhost>
Allow from all
</Proxy>
AllowCONNECT 22
ProxyVia On
</IfModule>
이제 로컬 호스트에 대한 HTTP 연결 요청을 수행 할 수 있으며 웹 서버가 터널을 설정하므로 모든 트래픽이 프록시를 통과해야합니다.
ssh -o 'ProxyCommand nc -X connect -x myhost.example.com:80 localhost 22' myhost.example.com
SSH에 대한 로컬 호스트 연결이 특권이 아닌지 확인하십시오.
포트 80 만 허용하는 라우터 뒤에있는 경우 작동합니다.
프록시 뒤에있는 경우 (웹에 액세스하려면 브라우저에서 프록시를 설정해야 함) 먼저 자신의 호스트에 터널을 설정 한 다음이 터널 내에 다른 CONNECT 요청을 발행하여 호스트에 도착해야합니다. 이것은 더 정교합니다.이를 위해 2 개의 넷캣을 사용해야합니다.
모든 것이 가능하지만 자신의 위험을 감수하십시오 ...
최신 정보:
또는 간단히 브라우저를 통해 SSH를 제공하는 웹 응용 프로그램을 사용하십시오. http://en.wikipedia.org/wiki/Web-based_SSH
방화벽에서 포트 80을 통해 이러한 데이터를 전송하지 못하도록 차단하여 SSH 포트를 포트 80으로 변경하도록 서버를 제어 할 수 없거나 포트 80을 통해 SSH를 사용할 수없는 경우 TOR를 시도 할 수 있습니다.
TOR는 거대한 네트워크입니다. 컴퓨터가 전세계 어딘가에 다른 컴퓨터에 연결되어 있고 해당 컴퓨터가 SSH 서버에 도달 할 때까지 다른 컴퓨터에 연결되어 있습니다. 이것은 모든 방화벽에 친화적이며 포트 443에서 발생합니다 (회사가 차단하지 않는 등의 문제는 아닙니다). 말 그대로 거대한 프록시 또는 VPN이며 암호화되어 있습니다. 이 방법으로 모든 포트의 모든 호스트 (포트 22의 서버 SSH)에 액세스 할 수 있습니다.
www.torproject.org 에서 온라인으로 살펴보십시오 .
죄송합니다. 악마의 옹호자를해야합니다.
나는 이것을하는 이유가 가장 크다는 것을 알고 있지만 왜 네트워킹 / 방화벽 관리자가 찾고있는 특정 포트를 열지 않습니까? 보안 관점에서, 웹 검사가 아무것도 놓칠 수있는 기회를 원하십니까? std 트래픽을 위해 포트 80을 우회하도록 구성되어 있고 위험에 처한 경우.
포인트 투 포인트 VPN이 더 안전한 옵션 일 수있는 위의 몇 가지 제안에 동의합니다. 다시 한 번, 보안 관점에서 보안 정책을 실제로 우회하는 이유와 액세스를 위해 서버를 dmz 또는 백본에 넣을 수없는 이유를 알고 싶습니다. 나만. 행운을 빕니다.
man ssh
port : host : hostport를 나타냅니다. 그래서 시도하십시오ssh 80:server.com
.