키가있는 두 서버 사이의 ssh 터널


0

두 개의 서로 다른 키를 사용하는 두 대의 서버 A와 B가 있습니다. 서버 A에서 작업하고 파일을 서버 B로 전송해야합니다. 그러나 다음 ssh 터널을 시도했을 때 서버 연결이 거부되어 파일 전송에 문제가 있습니다.

서버 A에서 :

ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A

그 다음에는 일시 중지 된 것으로 보이고 잠시 후 연결이 만료됩니다.

다음과 같이 키를 사용하여 scp를 정상적으로 처리하면 파일을 전송할 수 있으므로 scp와 ssh에서 사용하는 코드를 결합합니다.

ssh -i key -L 1234:server_B:22 -p 45678 user_in_A@server_A

그러나 그것은 작동하지 않았다.

내가 이것을하기 전에, 나는 그것을 할 방법이있다. 그러나 대부분의 해답과 설명은 ssh -L ... 열쇠가 없으니 내가 뭘 놓치고 있니? 어쩌면 내가 이해하지 못했던 개념 일 수도 있고, 내 표식에서 벗어나는 방법 일 수도 있습니까?

답변:


1

서버 A가 서버 B의 포트 22에 대한 TCP 연결을 설정할 수 있고 서버 A에 해당 명령을 입력하면 터널은 필요하지 않습니다.

ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A

thes 명령을 실행중인 경우 서버 A에 , 그 뜻은:

  • 당신은 서버 A가 가질 것으로 기대하고 있습니다. sshd 포트 45678
  • 당신은 서버 A에서 user_in_A @ server_A로 SSH 연결을하고 있습니다.
  • 당신은 또한 서버 A의 포트 1234에서 서버 B의 포트 22, 즉 서버 A의 터널을 설정하고 있습니다. sshd 서버 A의 포트 1234에 TCP 프록시를 설정하고 서버 B의 포트 22에 연결을 전달합니다.

SSH 연결은 서버 A에서 서버 A로 연결되기 때문에 터널의 암호화 된 부분은 완전히 서버 A 내에 있으므로 거의 쓸모가 없습니다. 터널이 작동하면 간단히 사용할 수 있음을 의미합니다. scp 터널을 만들지 않고 파일을 전송하는 방법 :

scp -i key_for_user_in_B /some/where/local/files user_in_B@server_B:

또는

scp -i key_for_user_in_B user_in_B@server_B:/some/remote/path /some/local/path/

첫 번째는 로컬 (A)에서 B로 파일을 "푸시"하고, 두 번째는 B에서 로컬 (A)로 파일을 "가져옵니다".

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