"원격 명령을 실행하지 않음"은 무엇을 의미합니까?

"원격 명령을 실행하지 않음"은 무엇을 의미합니까?

ssh 매뉴얼 페이지에는 다음과 같이 나와 있습니다.

-N    Do not execute a remote command.  This is useful for just forwarding ports.

"원격 명령을 실행하지 마십시오"가 무엇을 의미하는지 이해하지 못합니다.

누군가 나에게 이것을 설명해 줄 수 있습니까?

답변1

일반적으로 ssh프로그램은 원격 사용자의 셸을 사용하여 원격 시스템에서 명령을 실행합니다. 예를 들어, ssh user@server ls -l /tmp/tmp 디렉토리의 내용을 나열하십시오 server. 이 명령을 생략하면( 그림 참조) ssh user@server사용자 셸을 사용한 대화형 로그인 세션이 시작됩니다.

OpenSSH의 기능 중 하나는 터널 생성입니다. 및 옵션은 터널링 이라고도 알려진 -D네트워크 포트 전달을 허용하는 다양한 기술을 사용합니다 . 기본적으로 설정된 터널은 원격 서버에서 명령이 실행될 때마다 존재합니다.-L-Rsshssh

그러나 일반적으로 원하는 것은 원격 명령 실행에 관심이 없는 것입니다. 이것이 바로 이 -N옵션의 목적입니다.

답변2

일반적으로 ssh원격 사용자의 로그인 셸로 설정된 항목(예: )을 실행하면 /bin/bash원격 셸이 제공됩니다 . -N아무 것도 실행되지 않게 하므로 ssh연결만 하고 원격 셸이 필요하지 않을 때 유용합니다.

예를 들어 포트 전달 또는 터널 생성:

ssh -N -L 8080:127.0.0.1:80 user@server

이는 포트 전달에만 유용한 것이 아닙니다.

예: -f이것을 및 옵션(예: .ssh/config에 설정)과 함께 사용하고 재사용 가능한 연결을 만드는 데 사용할 수 있습니다.ControlMasterControlPath

ssh -fN user@server # creates connection in the background that can be reused.

관련 정보