SSH를 통해 원격으로 파일을 편집하는 방법은 무엇입니까?

SSH를 통해 원격으로 파일을 편집하는 방법은 무엇입니까?

SSH를 통해 액세스할 수 있는 서버에 있는 일부 파일을 편집해야 합니다.

나는 이 파일들을 사용자 정의 방식으로 편집하는 것을 선호합니다vimvim내 워크스테이션에서( 원격 서버의 설정을 변경할 권한이 없습니다 ). 가끔 파일을 편집하고 싶을 때가 있어요sublime text또는 다른 GUI 편집기.

물론 이러한 파일을 다운로드하여 로컬에서 편집하고 서버에 다시 업로드할 수 있습니다. 더 우아한 솔루션이 있습니까?

답변1

다음과 같은 방법으로 할 수 있습니다 scp.

vim scp://user@myserver[:port]//path/to/file.txt

server 와 path 사이에 두 개의 슬래시가 있다는 점에 유의하세요 //. 이는 절대 경로를 올바르게 구문 분석하는 데 필요합니다. (첫 번째 슬래시는 구문상, 두 번째 슬래시는 평소와 같이 원격 사용자의 루트 디렉터리를 지정합니다. 홈 디렉터리에서 시작하려면 . 을 실행해야 합니다 [:port]/~/path/to/file.txt.) [:port]는 선택 사항입니다.

이것은 vim이 처리합니다.netrw.vim표준 플러그인. 기타 여러 프로토콜이 지원됩니다.

답변2

sshfs를 사용하여 원격 폴더를 파일 시스템으로 마운트하면 됩니다. 이를 위해서는 먼저 몇 가지 전제조건을 충족해야 합니다.

#issue all these cmds on local machine
sudo apt-get install sshfs
sudo adduser <username> fuse #Not required for new Linux versions (including Ubuntu > 18.04)

이제 설치 프로세스를 진행하세요.

mkdir ~/remoteserv    
sshfs -o idmap=user <username>@<ipaddress>:/remotepath ~/remoteserv

그런 다음 설치된 폴더로 이동하여 로컬 사용자 정의 vim을 사용하십시오.

답변3

"scp"뿐만 아니라 여러 옵션을 사용할 수 있습니다.https://www.vim.org/scripts/script.php?script_id=1075

나는 "diff"가 scp에서 제대로 작동하지 않기 때문에 "rsync"를 사용하는 것을 선호합니다.

예 - 다른 원격 서버(hostname01.domain.my 및 hostname02.domain.my 등)에서 "/tmp/test" 파일로 vim을 시작하고, bash 확장을 사용하고, 수직으로 분할합니다.

vimdiff -O rsync://hostname{01,02,03}.domain.my:/tmp/test

답변4

편집할 파일 수와 파일 유형에 따라 정확히 원하는 작업이 아닐 수도 있지만 언급할 가치가 있다고 생각합니다. 원격 서버에서 파일을 편집해야 하지만 자신의 워크스테이션에서 모든 것을 사용하고 싶다면 일종의 도구 사용을 고려해 볼 수 있습니다.버전 관리당신의 기계에 있는 시스템. 이렇게 하면 선택한 소프트웨어를 사용하여 자신의 컴퓨터에서 로컬 복사본을 수정하고 변경 사항을 커밋한 다음 대상 컴퓨터의 로컬 복사본만 업데이트할 수 있습니다. 원하는 소프트웨어를 사용하여 파일을 편집하는 것 외에도 다음과 같은 추가 가치가 있습니다.역사적 변화각 파일과 관련하여 항상 좋습니다.

이것은 목록입니다버전 관리 소프트웨어, 혹시라도.

관련 정보