Windows에서 PowerShell에 SSH로 접속하고 화살표 키 세트를 사용 가능한 상태로 유지하려면 어떻게 해야 하나요?

Windows에서 PowerShell에 SSH로 접속하고 화살표 키 세트를 사용 가능한 상태로 유지하려면 어떻게 해야 하나요?

이렇게 하면 PowerShell로 직접 이동할 수 있습니다.

ssh foobar 'powershell'

, 하지만 이 셸에서는 화살표 키가 작동하지 않습니다.

만약 내가 그냥:

ssh foobar

..그런 다음 PowerShell을 입력합니다 powershell. 여기서 화살표 키가 작동합니다.

답변1

예, ssh foobar 'powershell'이는 SSH 연결 후 명령을 시작하는 기본 방법입니다... 하지만 주의할 점이 있습니다. 기본적으로 이와 같은 명령을 지정하면 OpenSSH 클라이언트는세션을 비대화형 세션으로 초기화합니다..

이는 본질적으로 원격 측에 PTY 장치가 없으며 sshd원격에서 원격 셸까지 직선이고 명령이 실행된다는 것을 의미합니다. 또한 변수가 없으며 $TERM로그인 스크립트에서 문제를 일으키는 출력이 바람직하지 않으므로 SSH를 통해 시스템 간에 효율적으로 내용을 전송할 수 있습니다. 그러나 이는 대화형 도구를 불행하게 만들 것입니다. 예를 들어, 아시다시피 화살표 키는 작동하지 않습니다. 왜냐하면 원격 측은 로컬 측이 화살표 키에 대해 어떤 터미널 키코드 시퀀스를 보낼지 모르기 때문입니다.

SSH 명령줄에서 원격 명령을 지정할 때 TTY 할당을 명시적으로 요청하여 이 문제를 해결할 수 있습니다.

ssh -t foobar 'powershell'

이 옵션을 추가하면 원격 엔드에 대한 명령을 지정하더라도 -tSSH 클라이언트는 원격 엔드가 대화형 사용을 위해 완전히 설정되도록 요청합니다 .sshd

powershell로컬 쉘에 특별한 의미를 갖는 문자가 없으므로 작은따옴표를 생략할 수도 있습니다.

ssh -t foobar powershell

관련 정보