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
-R
ssh
ssh
그러나 일반적으로 원하는 것은 원격 명령 실행에 관심이 없는 것입니다. 이것이 바로 이 -N
옵션의 목적입니다.
답변2
일반적으로 ssh
원격 사용자의 로그인 셸로 설정된 항목(예: )을 실행하면 /bin/bash
원격 셸이 제공됩니다 . -N
아무 것도 실행되지 않게 하므로 ssh
연결만 하고 원격 셸이 필요하지 않을 때 유용합니다.
예를 들어 포트 전달 또는 터널 생성:
ssh -N -L 8080:127.0.0.1:80 user@server
이는 포트 전달에만 유용한 것이 아닙니다.
예: -f
이것을 및 옵션(예: .ssh/config에 설정)과 함께 사용하고 재사용 가능한 연결을 만드는 데 사용할 수 있습니다.ControlMaster
ControlPath
ssh -fN user@server # creates connection in the background that can be reused.