역 SSH 터널링이란 무엇입니까? (및 사용 방법)

연결할 수 없는 Linux 컴퓨터에 SSH를 사용해야 합니까? 전화를 걸고 해당 연결을 잠식하여 원격 SSH 세션을 가져옵니다. 우리는 방법을 보여줍니다.

역 SSH 터널링을 사용하려는 경우

때로는 원격 컴퓨터에 접근하기 어려울 수 있습니다. 그들이 위치한 사이트에는 엄격한 방화벽 규칙이 있거나 로컬 관리자가 복잡한 방화벽을 설정했을 수 있습니다. 네트워크 주소 변환 규칙. 연결해야 하는 경우 그러한 컴퓨터에 어떻게 도달합니까?

몇 가지 레이블을 설정해 보겠습니다. 귀하의 컴퓨터는 가까이 있기 때문에 로컬 컴퓨터입니다. 연결하려는 컴퓨터는 사용자와 다른 위치에 있기 때문에 원격 컴퓨터입니다.

이 기사에서 사용된 로컬 컴퓨터와 원격 컴퓨터를 구별하기 위해 원격 컴퓨터는 “wdzwdz”라고 하며 Ubuntu Linux(보라색 터미널 창 포함)를 실행하고 있습니다. 로컬 컴퓨터는 “Sulaco”라고 하며 Manjaro Linux(노란색 터미널 창 포함)를 실행하고 있습니다.

일반적으로 당신은 발사 할 것입니다 SSH 연결 로컬 컴퓨터에서 원격 컴퓨터에 연결합니다. 이것은 우리가 설명하는 네트워킹 시나리오의 옵션이 아닙니다. 특정 네트워크 문제가 무엇인지는 그다지 중요하지 않습니다. 이는 원격 컴퓨터에 SSH로 바로 연결할 수 없을 때 유용합니다.

그러나 네트워크 구성이 간단하면 원격 컴퓨터에서 연결할 수 있습니다. 그러나 원격 컴퓨터에서 작동하는 명령줄 세션을 제공하지 않기 때문에 이것만으로는 충분하지 않습니다. 하지만 이제 시작입니다. 두 컴퓨터 간에 연결이 설정되어 있습니다.

답은 역 SSH 터널링에 있습니다.

역 SSH 터널링이란 무엇입니까?

역 SSH 터널링을 사용하면 설정된 연결을 사용하여 로컬 컴퓨터에서 원격 컴퓨터로 다시 새 연결을 설정할 수 있습니다.

원래 연결은 원격 컴퓨터에서 사용자에게 오기 때문에 다른 방향으로 사용하는 것은 “역방향”으로 사용하는 것입니다. 그리고 SSH는 안전하기 때문에 기존 보안 연결 내부에 보안 연결을 두는 것입니다. 이것은 원격 컴퓨터에 대한 연결이 원래 연결 내에서 개인 터널 역할을 한다는 것을 의미합니다.

  Mac 키보드의 꺼내기 키를 다시 유용하게 만드는 방법

그래서 우리는 “역 SSH 터널링”이라는 이름에 도달했습니다.

어떻게 작동합니까?

역 SSH 터널링은 설정된 연결을 사용하는 원격 컴퓨터에 의존하여 로컬 컴퓨터의 새 연결 요청을 수신 대기합니다.

원격 컴퓨터는 로컬 컴퓨터의 네트워크 포트에서 수신 대기합니다. 해당 포트에 대한 SSH 요청을 감지하면 해당 연결 요청을 설정된 연결 아래로 다시 중계합니다. 이것은 로컬 컴퓨터에서 원격 컴퓨터로의 새로운 연결을 제공합니다.

설명하는 것보다 설정하는 것이 더 쉽습니다.

SSH 역 터널링 사용

SSH는 Linux 컴퓨터에 이미 설치되어 있지만 로컬 컴퓨터가 이전에 SSH 연결을 수락한 적이 없는 경우 SSH 데몬(sshd)을 시작해야 할 수도 있습니다.

sudo systemctl start sshd

컴퓨터를 재부팅할 때마다 SSH 데몬을 시작하려면 다음 명령을 사용하십시오.

sudo systemctl enable sshd

원격 컴퓨터에서 다음 명령을 사용합니다.

-R(역방향) 옵션은 원격 컴퓨터에서 새 SSH 세션을 만들어야 함을 ssh에 알립니다.
“43022:localhost:22″는 로컬 컴퓨터의 포트 43022에 대한 연결 요청이 원격 컴퓨터의 포트 22로 전달되어야 함을 ssh에 알려줍니다. 포트 43022는 다음과 같은 이유로 선택되었습니다. 할당되지 않은 것으로 나열됨. 특별한 번호가 아닙니다.
[email protected] 원격 컴퓨터가 로컬 컴퓨터에서 연결할 사용자 계정입니다.

ssh -R 43022:localhost:22 [email protected]

이전에 로컬 컴퓨터에 연결한 적이 없다는 경고를 받을 수 있습니다. 또는 연결 세부 정보가 인식된 SSH 호스트 목록에 추가될 때 경고가 표시될 수 있습니다. 표시되는 내용은 원격 컴퓨터에서 로컬 컴퓨터로 연결되었는지 여부에 따라 달라집니다.

로컬 컴퓨터에 연결하는 데 사용하는 계정의 암호를 묻는 메시지가 표시됩니다.

연결이 완료되면 명령 프롬프트가 다음에서 변경됩니다. [email protected] 에게 [email protected]

이제 원격 컴퓨터에서 로컬 컴퓨터에 연결되었습니다. 즉, 명령을 내릴 수 있습니다. who 명령을 사용하여 로컬 컴퓨터의 로그인을 확인하겠습니다.

who

dave라는 사용자 계정을 가진 사람이 로컬 컴퓨터에 로그인했고 원격 컴퓨터가 IP 주소 192.168.4.25에서 (동일한 사용자 자격 증명을 사용하여) 연결되었음을 알 수 있습니다.

  ISeePass Bookmarklet을 사용하여 브라우저에서 암호 표시 및 숨기기

원격 컴퓨터에 연결

원격 컴퓨터에서 연결이 성공하고 연결을 수신 중이므로 로컬 컴퓨터에서 원격 컴퓨터에 연결을 시도할 수 있습니다.

원격 컴퓨터는 로컬 컴퓨터의 포트 43022에서 수신 대기 중입니다. 따라서 다소 직관적이지 않게 원격 컴퓨터에 연결하기 위해 ssh에 포트 43022에서 로컬 컴퓨터에 연결하도록 요청합니다. 해당 연결 요청은 원격 컴퓨터로 전달됩니다.

ssh localhost -p 43022

사용자 계정 암호를 묻는 메시지가 표시된 다음 로컬 컴퓨터에서 원격 컴퓨터에 연결됩니다. Manjaro 컴퓨터는 “Ubuntu 18.04.2 LTS에 오신 것을 환영합니다”라고 기쁘게 말합니다.

명령 프롬프트가 다음과 같이 변경되었습니다. [email protected] 에게 [email protected] 우리는 도달하기 어려운 원격 컴퓨터에 SSH 연결을 만드는 목표를 달성했습니다.

키로 SSH 사용

원격 컴퓨터에서 로컬 컴퓨터로 더 편리하게 연결할 수 있도록 SSH 키를 설정할 수 있습니다.

원격 컴퓨터에서 다음 명령을 입력합니다.

ssh-keygen

암호를 입력하라는 메시지가 표시됩니다. Enter 키를 눌러 암호 질문을 무시할 수 있지만 권장하지 않습니다. 원격 컴퓨터에 있는 모든 사람이 암호를 묻지 않고 로컬 컴퓨터에 SSH로 연결할 수 있음을 의미합니다.

기호로 구분된 3개 또는 4개의 단어는 강력한 암호를 만듭니다.

SSH 키가 생성됩니다.

공개 키를 로컬 컴퓨터로 전송해야 합니다. 다음 명령을 사용하십시오.

ssh-copy-id [email protected]

로그인하려는 사용자 계정의 비밀번호를 묻는 메시지가 표시됩니다. 이 경우, [email protected]

원격 컴퓨터에서 로컬 컴퓨터로 처음 연결을 요청할 때 암호를 제공해야 합니다. 터미널 창이 열려 있는 한 향후 연결 요청을 위해 다시 입력할 필요가 없습니다.

모든 터널이 무서운 것은 아닙니다

일부 터널은 어둡고 구불구불할 수 있지만, 원격 컴퓨터와 로컬 컴퓨터 간의 관계를 머릿속에 그대로 유지할 수만 있다면 역 SSH 터널링은 탐색하기 어렵지 않습니다. 그런 다음 뒤집습니다.