원격 시스템에 설치되지 않은 셸 사용

원격 시스템에 설치되지 않은 셸 사용

주어진 시나리오:

  • 외딴머신: SSH 서버;사용자관리자 권한이 없습니다.
  • 현지의머신: SSH 클라이언트;사용자관리자 권한이 있습니다.

만약에사용자, 로그인외딴~에서현지의, 희망하다외딴제거된 쉘 사용외딴, 어쩌다보니사용자이거 혼자 하는 거야?

예:사용자사용물고기존재하다현지의을(를) 사용하고 싶습니다.외딴, 하지만외딴오직세게 때리다그리고다루기 힘든설치하다.

답변1

원격 시스템에 원하는 쉘을 설치하십시오. 이 작업을 수행하려면 관리자 권한이 필요하지 않으며 홈 디렉터리에 프로그램을 설치할 수 있지만 그다지 편리하지는 않습니다. 바라보다루트 없이 Debian 5 32비트에 설치,sudo 권한 없이 로컬로 프로그램을 설치하는 방법은 무엇입니까?,추적 프로그램그리고다른 문제.

기본 셸 대신 설치된 자체 셸에 자동으로 로그인하려면 다음을 참조하세요.루트 액세스 없이 zsh 기본 쉘 만들기

원격 파일에서만 작업하려는 경우 다음을 사용할 수 있습니다.SSHFS원격 디렉터리 트리를 로컬 컴퓨터에 탑재합니다.

mkdir ~/remote.d
sshfs remote.example.com:/ ~/remote.d
ls ~/remote.d/
fusermount -u ~/remote.d

홈 디렉터리에 공간이 없거나 공유 계정인 경우 하나를 설정할 수 있습니다.역방향 SSH 터널로컬 디렉토리 트리를 원격 컴퓨터에 마운트합니다.SSHFS, 두 시스템 모두 동일한 아키텍처(동일한 프로세서 유형의 동일한 UNIX 변형)를 실행한다고 가정합니다. 두 시스템의 아키텍처가 호환되지 않는 경우 로컬 홈 디렉터리에 원격 아키텍처용 프로그램을 설치할 수도 있습니다. 라이브러리, 구성 파일 및 기타 데이터 파일을 찾으려면 프로그램 경로를 올바르게 설정해야 하기 때문에 이는 매우 편리하지 않을 수 있습니다.

이맥스껍데기호환 가능도보 여행가: Eshell에서 원격 디렉터리로 변경하면 원격 컴퓨터에서 명령이 실행됩니다.

답변2

간단한 대답: 아니요, 원격 상자에 설치되지 않은 프로그램은 원격 상자에서 사용할 수 없습니다.

해결 방법: 원격 시스템에 셸을 설치하는 데는 관리자 권한이 필요하지 않습니다. 홈 디렉터리에 설치할 수 있지만 소스에서 컴파일해야 할 수도 있습니다. 보통 이런거 쓰는데configure --prefix=${HOME}/local

최종 참고 사항: 기본 쉘을 비"공식" 쉘(참고자료 참조 /etc/shells)로 변경할 수는 없지만 변경할 exec fish수는 있습니다..bashrc

답변3

사용자사용할 수 있다sshfs로컬 컴퓨터에 원격 $HOME을 설치합니다. 그러한 시나리오에서는사용자원격 시스템에서 자신이 선택한 쉘을 직접 사용하지 않지만 아무것도 없는 것보다는 낫습니다.

답변4

분명한 대답은 "원격 컴퓨터에 명령을 설치하십시오"입니다. 이는 가장 깔끔한 솔루션이므로 무시해서는 안 됩니다.

예를 들어 를 사용하여 루트로 명령을 설치할 수 있는 경우
sudo apt-get install fish다음
과 같이 명령을 실행할 수 있습니다.

ssh remote -t fish


문제는 우리가설치할 수 없습니다원격 컴퓨터에서 명령을 실행합니다.
혹은 좀 더 구체적으로 우리의 경우에 대해명령을 루트로 설치할 수 없습니다.
그렇다고해서 전혀 설치할 수 없다는 의미는 아닙니다!

여전히 작동하는 것은 설치 명령입니다홈 디렉토리에서그것을 구축함으로써소스에서.

이것의 장점은 관련된 모든 것을 처리한다는 것입니다.지원 서류아마도 명령과 프로그램이 명령을 찾는 방법이 있을 것입니다. fish쉘 예제 에서는 다음과 같습니다.완전한 기능잠깐만요. 바이너리만 복사하면 이 중 아무 것도 사용할 수 없습니다 fish.

소스에서 명령을 빌드하려면 사용되는 라이브러리에 대한 개발 도구와 개발 파일이 필요하며 이는 지나치게 복잡할 수 있습니다.

그러나 많은 프로그램은 필요한 모든 것을 소스에 번들로 포함하므로 이 작업이 쉬울 수 있습니다. 이전에는 말하기 어려웠지만 시도해 볼 수 있습니다.

홈 디렉토리에 명령을 설치하려면 configure다음을 제공하십시오 .설치 경로- 빌드 지침에서 확인이 필요합니다. 예를 들어:

mkdir ~/local
./configure --prefix=~/local 
make
make install

이것은 sudo make install평소와 다르다는 점에 유의하십시오.정시에로컬로 설치하는 경우 sudo가 필요하지 않습니다.

소스에서 프로그램을 설치하는 방법에 대한 일반적인 정보는 다음을 참조하세요.askubuntu.SE: .tar.gz(또는 .tar.bz2) 파일을 설치하는 방법은 무엇입니까?

관련 정보