Sublime over SSH를 사용하는 방법


236

작업 서버에 SSH로 연결할 때 Sublime Text 2를 편집기로 사용하려고하는데 문제가 발생했습니다. 나는 이것이 도움이 될 것 같은 http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (많은 다른 게시물 중에서)를 찾았 지만 정확하게 따르지 않습니다. , 특히 5 행에서 원격 변수에 어떤 값을 입력해야하는지에 대해 "/ Users / path / to / local / copy"를 로컬 루트 디렉토리로 설정했지만 이것이 올바른지 또는 더 많은지 알 수 없습니다. 할 것. 이견있는 사람? 나는 OSX10.8에있다


12
나는 쉽게 사용하는 것으로 나타났습니다 osxfusesshfs 로컬 ST2를 통해 원격 디렉토리와 다음 편집을 마운트 내 Mac에서.
AGS

sftp 용으로 인기있는 ST2 플러그인이 있습니다. 여기에 내가 AGS가 참조하는 것으로 판단되는 시스템의 자세한 설명은 다음과 같습니다 superuser.com/questions/134140/... . 로그인시 자동로드에 문제가 있었고 Platypus로 만든 해결 방법 로그인 스크립트를 사용해야했습니다. 또한 더 나은 버전의 macfuse가 필요했습니다. 관심이 있다면 링크를 찾을 수 있는지 확인할 것입니다.
lawlist

Snow Leopard (10.6.8)를 사용하면 MacFuse에 대한 업데이트 된 코어 (예 : macfuse-core-10.5-2.1.9.dmg)가 필요했습니다. 여기에 내가 얻을 수있는 링크가 있습니다 : blog.urbaninsight.com/2011 / 04 / 18 /… 관심이 있으시면 많은 두통을 덜어 야합니다.
lawlist

라이브 파일이 아니기 때문에 로그 파일과 내용을 보는 데 적합하지 않지만 종종 gitolite를 설정하는 것이 좋습니다. git pull 만하면 로컬로 모든 것을 재생할 수 있습니다. 요즘에도 많은 사람들이 인터넷 속도가 빠르며 네트워크 지연 현상을 느끼지 않을 것입니다 ... 모두 설정에 달려 있습니다.

답변:


161

세 가지 방법이 있습니다.

또한 이론적으로 원격 서버에 X11을 설치하고 VNC 또는 X11 전달을 통해 Sublime을 실행할 수는 있지만 아무런 조치도 취하지 않습니다.



11
SSHFS / osxfuse 콤보가 나를 위해 일했습니다! 감사. 이 문제가있는 다른 사람들을 위해 : github.com/osxfuse/osxfuse/wiki/SSHFS
thumbtackthief

sftp 플러그인을 사용하면 대화식 쉘과 같은 도구를 사용하고 emacs와 같은 repl을 사용할 수 있습니까?
Edmondo1984

@ Edmondo1984는 단지 그것을 위해 실제 터미널을 사용합니다
Mikko Ohtamaa

1
Sublime SFTP를 사용하면 실제로 ST 프로젝트 창없이 원격으로 파일을 편집하거나 ( 어디로 이동 하지 않음 ) rsync와 같은 작업을 수행 할 수 있습니다. 그것을 시험하는 무료 평가판이 있습니다.
Wernight

102

TextMate에서 영감을 얻은 rsub 를 사용할 수 있습니다 rmate. 설명에서 :

Rsub는 Sublime Text 2에 대한 TextMate 2의 'rmate'기능을 구현하여 SSH 포트 전달 / 터널링을 사용하여 원격 서버에서 파일을 편집 할 수 있습니다.

다음은 올바르게 설정하는 방법에 대한 유용한 자습서 입니다.


2
또한 rsub를 사용하는 것이 간단하고 sudo를 허용한다는 데 동의합니다. 나는 그것이 제대로 작동하는 데 문제가 있었지만 SO에도 대답이있었습니다 : stackoverflow.com/questions/18938950/…
Ross R

7
무료이기 때문에 첫 번째 답변 대신이 답변을 표시하십시오.
theodore

가이드는 나 자신과 같은 완전한 터미널 멍청한 놈조차도 완벽하게 작동했습니다. 감사!
Henrik

66

저는 Windows를 사용하고 있으며 SSH를 통해 Windows로 X11을 전달하는 Linux에서 SFTP , WinSCP , UnisonSublime Text의 4 가지 방법을 사용했습니다 (예 : 지저분한 구성없이 무료 도구를 사용 하여이 작업을 수행 할 수 있습니다).

네 번째 방법은 Linux 시스템에 소프트웨어를 설치할 수있는 경우에 가장 좋습니다.

네 번째 방법 :

MobaXterm

  1. Windows에 MobaXterm 설치
  2. MobaXterm에서 Linux 박스로 SSH
  3. 리눅스 상자에 Sublime Text 3을 설치하십시오 . 우분투 에서 하는 방법은 다음과 같습니다.
  4. 명령 프롬프트에서 subl
  5. 그게 다야! 이제 Linux에서는 숭고한 텍스트가 실행되지만 Windows 데스크톱에서는 창이 실행됩니다. MobaXterm은 SSH를 통해 X11 포워딩을 처리하므로 펑키 한 작업을 수행 할 필요가 없습니다. 약간의 지연이있을 수 있지만 Linux 시스템에서 직접 편집하기 때문에 파일이 동기화되지 않습니다.

참고 : 특정 라이브러리에 대해 불만이있는 경우 subl을 호출 할 때 mobaxterm에서 sublimetext를 성공적으로 호출하도록 설치하십시오.

Linux 박스에 소프트웨어를 설치할 수 없다면 Unison이 가장 좋습니다. 왜?

  • 무료입니다
  • 빠르다
  • 신뢰할 수 있고 어떤 편집기를 사용하든 상관 없습니다.
  • 당신은 사용자 정의 무시 목록을 만들 수 있습니다

SFTP

설정 : SFTP Sublime Text 패키지를 설치하십시오 . 이 패키지에는 라이센스가 필요합니다.

  1. 새 폴더 만들기
  2. Sublime Text Project로여십시오.
  3. 사이드 바에서 폴더를 마우스 오른쪽 단추로 클릭하고 원격 맵핑을 선택하십시오.
  4. sftp-config.json 파일을 편집하십시오.
  5. 1 단계에서 폴더를 마우스 오른쪽 단추로 클릭하여 다운로드를 선택하십시오.
  6. 현지에서 일하십시오.

sftp-config에서 나는 보통 다음과 같이 설정했다.

"upload_on_save": true,
"sync_down_on_open": true,

이것은 기계에 대한 SSH 터미널 외에도 상당히 완벽한 원격 편집 환경을 제공합니다.

WinSCP

  1. WinSCP 설치 및 실행
  2. 환경 설정 (Ctrl + Alt + P)으로 이동하여 전송을 클릭 한 다음 추가를 클릭하십시오. 프리셋 이름을 지정합니다.
  3. 전송 모드를 이진으로 설정하십시오 (라인 변환을 원하지 않음)
  4. 파일 수정을 "변경 없음"으로 설정
  5. 파일 마스크 옆에있는 편집 버튼을 클릭하고 포함 및 제외 파일 및 폴더를 설정하십시오 (.git / .svn 폴더가 있거나 빌드 제품의 동기화에서 제외하려는 경우에 유용함).
  6. 확인을 클릭하십시오
  7. 원격 서버에 연결하고 원하는 폴더로 이동하십시오
  8. 로컬 컴퓨터에서 빈 폴더를 선택하십시오.
  9. 새로 만든 전송 설정 사전 설정을 선택하십시오.
  10. 마지막으로 Ctrl + U (명령> 원격 디렉토리를 최신 상태로 유지)를 누르고 "시작시 동기화"및 "업데이트 서브 디렉토리"가 선택되어 있는지 확인하십시오.

그때부터 WinSCP는 변경 사항을 동기화 된 상태로 유지합니다.

SublimeText를 사용하여 로컬 폴더에서 작업하십시오. Sublime Text가 편집중인 파일의 줄 끝을 추측하도록 설정되어 있는지 확인하십시오.

조화

소스 트리가 방대한 경우 (깊은 계층 구조로 수백 MB 정도) 위에서 설명한 WinSCP 방법이 약간 느릴 수 있습니다. Unison을 사용하면 훨씬 더 나은 성능을 얻을 수 있습니다 . 단점은 Unison이 자동이 아니며 (키를 눌러 트리거해야 함) Linux 시스템에서 서버 구성 요소를 실행해야한다는 것입니다. 단점은 전송 속도가 매우 빠르다는 것입니다. 매우 안정적이며 파일, 폴더 및 확장명을 무시하면 설치가 매우 쉽습니다.


SFTP setup링크의 경우 +1 SFTP가 Windows 소프트웨어인지 Sublime 패키지인지는 몰랐습니다.
케빈 메러디스

나는 ST2, PuTTY, 그리고 약간의 FileZilla에는 sftp를 사용하고 좋은 측정을 위해 사용합니다. 많은 시도 후에 찾은 최고의 설정입니다. 그러나 로컬 파일 세트를 유지하는 것을 싫어합니다. 나는 터미널 편집기가 vi 나 nano를 좋아하는 ST보다 ST를 선호합니다. 서버 자체의 ST3가 달콤한 것처럼 들립니다. 팁을위한 THX -
Bosworth99

사이버 덕 ( cyberduck.io/?l=en ) 사용자 인 경우 숭고한 텍스트가 매우 잘 통합됩니다.
sakurashinken

33

@ubik의 답변에 대한 후속 조치로 다음은 원격 서버에서 'subl'명령을 작동시키는 간단한 세 번의 단계입니다.

  1. [ 로컬 ] Sublime Package Manager를rsub 사용하여 Sublime Text에 패키지 설치
  2. [ Local ] 다음 Bash 명령을 실행하십시오 ( rsub의 비밀 소스 인 SSH 터널 이 설정됩니다 ).

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
  3. [ 서버 ] 원격 서버에서 다음 Bash 명령을 실행하십시오 ( 'subl'쉘 명령이 설치됨).

    sudo wget -O /usr/local/bin/subl https://raw.github.com/aurora/rmate/master/rmate; sudo chmod +x /usr/local/bin/subl

그리고 짜잔! 이제 SSH를 통한 Sublime Text를 사용하고 있습니다.

서버에서 Sublime Text로 예제 파일을 열 수 있습니다. subl ~/test.txt


1
나는 계속 받고있다 : /usr/local/bin/subl: connect: Connection refused /usr/local/bin/subl: line 200: /dev/tcp/localhost/52698: Connection refused Unable to connect to TextMate on localhost:52698. 생각?
thumbtackthief

1
예 : ssh 명령에 -R 52698 : localhost : 52698을 추가하십시오. 여기를보십시오 : stackoverflow.com/questions/18938950/…
Ross R

내가 유용하다고 생각한 멍청한 팁 : 로컬 컴퓨터에서 Sublime을 실행해야합니다. 실제로 서버가 시작됩니다.
Magne

@RossR-작동하지 않습니다. 내 모습은 "RemoteForward 52698 127.0.0.1:52698 -R 52698 : localhost : 52698"이며 여전히 같은 오류를 출력합니다. "localhost : 52698에서 TextMate에 연결할 수 없음"
FooBar

1
위의 작동, U 후에 원격 서버를 다시 시작해야하거나 연결 거부 오류가 계속 발생합니다.
ctf0

10

저는 MacOS를 사용하고 있으며 가장 편리한 방법 은 무료 (Windows에서도 사용 가능) CyberDuck 을 사용 하는 것입니다. 원격 SSH 파일 시스템에 연결하고 로컬 편집기를 사용하여 파일을 편집 할 수 있습니다. CyberDuck은 파일을 로컬 OS의 임시 위치에 다운로드하여 편집기에서 엽니 다. 파일을 저장하면 CyberDuck이 자동으로 파일을 원격 시스템에 업로드합니다. 로컬 편집기를 사용하여 원격 파일을 편집하는 것처럼 투명 해 보입니다. Cyberduck 개발자도원격 파일 시스템을 마운트하기 MountainDuck 을.


1
이 ... sudo는 작동하지 않지만 내가, upvoted (파일을 작성해야 수퍼 유저 액세스가)
티아구 코엘류

1
이 정확한 솔루션을 게시했습니다. CyberDuck을 사용하는 한 매우 편리합니다. 그러나 CyberDuck이 실행되는 동안에 만 작동합니다. 동일한 방법을 사용하여 다른 편집기에서 파일을 열 수도 있지만 모든 파일이 안정적으로 작동하지 않고 연결이 끊어 지거나 원격 대신 로컬 (예 : Microsoft Excel) 대신 로컬 저장으로 자동 전환되는 것으로 나타났습니다. Sublime을 사용 하여이 문제에 결코 단일 한 문제가 없었습니다.
user5359531

8

내가 작업했던 ' xeno '를 시도해 볼 수 있습니다 . SSH 연결을 통해 Sublime Text (또는 로컬 편집기)로 파일 / 폴더를 열고 변경 사항을 원격 시스템에 자동으로 동기화 할 수 있습니다. 거의 모든 POSIX 시스템에서 작동해야합니다 (OS X에서 직접 사용하여 Linux 시스템에 연결하고 Sublime Text의 파일을 편집합니다). 무료이며 오픈 소스입니다. 피드백을 받고 싶습니다.

자세한 내용은 기본적으로 Python으로 작성된 Git / SSH 매시업으로 로컬 컴퓨터에서 원격 컴퓨터의 파일과 폴더를 편집 할 수 있습니다. 커널 모듈을 구성 할 필요가없고, 지속적으로 연결할 필요가 없으며, 모두 자동이며, 작업 공간이 부족한 Git 리포지토리를 사용하기 때문에 기존 소스 제어를 방해하지 않습니다. 또한 Git을 기반으로하기 때문에 SSHS / SFTP와 달리 이전 타임 스탬프가있는 파일을 쉽게 복제 할 수있는 매우 빠르며 양쪽 끝에서 변경 될 수있는 파일의 자동 병합을 지원합니다.


그리고 ST2 + Xeno를 놀라운 콤보로 만드는 스크립트 및 구성 옵션으로 간단한 블로그 게시물을 작성했습니다. www.yeraze.com
Yeraze

5

sftp를 사용하여 위치 머신에 원격 디렉토리를 마운트 한 다음 평소와 같이 Sublime 텍스트를 사용하여 파일을 열기 만하면됩니다.

sftp를 사용하여 원격 디렉토리를 마운트하려면 Linux 파일 관리자에서 다음을 입력하십시오.

sftp://user@remote_box.com:22/home/user/code_directory

인터넷 속도에 따라 느려질 수 있습니다. 그러나 이것은 나를 위해 일했습니다.


5

나는 이것이 오래된 방법이라는 것을 알고 있지만 공유 할 가치가있는 멋진 방법이 있습니다.

ConemuWinSCP에 필요한 사항 . 이것들은 간단한 지침입니다

  1. WinSCP.exe를 열고 원하는 원격 서버
    에 로그인하십시오 (첨부하기 전에 로그인하는 것이 중요하다는 것을 알았습니다 ...).

  2. WinSCP 환경 설정에서 두 가지 설정을 변경합니다. Commander 대신 Explorer type interface를 선택하면 로컬 파일이 보이지 않습니다. 당신이 원하지 않는다면 (그러나 그것은 여기 빨려들 것 같습니다). Sublime을 기본 편집기로 설정하십시오.

  3. ConEmu가 열린 상태에서 탭 표시 줄을 마우스 오른쪽 단추로 클릭하고 옵션을 선택하십시오 Attach to.... 실행중인 응용 프로그램과 함께 대화 상자가 열립니다. WinSCP를 선택하고 확인을 선택하십시오. ConEmu는 이제 원격 파일을 표시하는 WinSCP와 함께 열린 탭을 갖게됩니다.

  4. WinSCP 탭을 마우스 오른쪽 버튼으로 클릭하고을 선택하십시오 New console.... 대화 상자가 열리면 시스템에서 Sublime 실행 파일의 경로를 입력하십시오. 를 누르기 전에 Start상자 New console split에서 라디오 버튼을 선택 to right하고 백분율을 설정하십시오. 나는 보통 75 %를 선택하지만 원하는대로 사용자 정의 할 수 있으며 나중에 변경할 수 있습니다.

    1. 이제 WinSCP 오른쪽에서 실행되는 동일한 창에 Sublime이 표시됩니다. Sublime의 View 메뉴 Sidebar->Hide Sidebar에서을 선택 하고 bam을 선택 하면 로컬에서와 동일한 방식으로 원격 파일을 갖게됩니다. 물론 원격으로 편집 할 때 몇 가지주의 사항이 있습니다. WinSCP는 빠르게 밝아지고 있습니다.

두 개의 모니터가 있습니다-왼쪽 모니터 디스플레이의 Chrome 브라우저, 오른쪽 모니터 디스플레이 코드 편집기. 또한에서 ConEmu다른 탭을 만들고 작업중인 사이트에 ssh를 추가하여 실행 gulp또는 grunt원격으로 작업을 수행 하고 명령 줄에서 파일을 조작 할 수도 있습니다. 개발을 진지하게 진전시켰다.

스크린 샷은 다음과 같습니다.

설정 스크린 샷


5

이것은 이전에 ssh를 원격 IP로 설정 한 원격 호스트에있는 파일을 로컬에서 편집하는 가장 쉬운 방법입니다.

# issue on local box

sudo apt-get install sshfs   # on local host install sshfs ( linux )

# on local box create secure mount of remote directory

export REMOTE_IP=107.170.58.249 # remote host IP

sshfs myremoteuserid@${REMOTE_IP}:/your/remote/dir  /your/local/dir # for example

!!!

이제 로컬 호스트에서 파일 편집을 시작하십시오 ... dir을 로컬로 나열하면 하위 디렉토리로 cd하거나 특정 파일을 나열 할 때까지 아무것도 나열하지 않을 수 있습니다 ... 게으른 로딩 ... 이것은 파일 편집에 영향을 미치지 않습니다

subl /your/local/dir/magnum_opus.go # local file edit using sublime text

위의 것은 실제로 원격 파일을 편집하는 것입니다.

/your/remote/dir/magnum_opus.go  # remote file on box $REMOTE_IP

OSX 또는 Windows의 경우 Digital Ocean에서 친절한 사람들의이 튜트를 참조하십시오.


4

osxfuse와 유사한 또 다른 mac 솔루션은 원격 폴더를 로컬 디스크로 마운트 할 수있는 Panic Software의 FTP 전송 클라이언트를 사용하는 것입니다. SFTP를 지원하며 매우 안전합니다.


나는이 옵션을 많이 좋아한다. 장착하면 전체 드라이브를 숭고한 프로젝트로 열 수 있습니다.
Mic Fok

3

GiySync 라는 프로젝트를 진행하고 있습니다. 여전히 약간의 작업이 필요하지만 오픈 소스이며 몇 년 동안 매일 사용하고 있습니다. 또한 GitSyncApp 이라는 기본 OS X 버전에서도 작업하고 있습니다.

지금은 OS X 전용이지만 Linux 및 Windows에 대한 지원을 쉽게 추가 할 수 있어야합니다.

파일 시스템 이벤트를 보면서 작동하며 로컬 컴퓨터와 서버의 프로젝트 폴더를 동기화 하기 위해 git 를 사용 합니다.

나는 osx fuse, Expand Drive, Transmit, rsync를 사용한 여러 솔루션 등과 같은 다른 솔루션을 시도했습니다. 그들은 작은 프로젝트에서 모두 'OK'로 작동하지만 많은 코드로 작업하면 나에게 적합하지 않습니다.

많은 파일 시스템 옵션이 캐싱을 수행하여 성능을 향상시킵니다. 다른 사람과 작업하고 다른 사람이 서버의 파일을 변경하는 것처럼.

또한 빈 파일로 끝나는 비정상적이거나 느린 네트워크에 있으면 문제가 발생했습니다. 또는 파일이 동기화되지 않으면 캐싱이 이상해졌습니다. 잘만되면 당신은 최근에 최선을 다했습니다. git을 사용하면 각 커밋의 무결성을 검사하기 때문에이 문제가 해결됩니다.

두 가지 보너스 기능 :

  1. 당신은 모든 저장에 대한 커밋으로 끝납니다. 그것은 유용하지는 않지만 시간을 거슬러 가야한다면 가능합니다.
  2. 모든 텍스트 편집기에서 작동합니다.

0

정확한 요구에 따라 BitTorrent Sync 사용을 고려할 수 있습니다. 가정용 PC와 업무용 PC에 공유 폴더를 만듭니다. Sublime 또는 원하는 것을 사용하여 가정용 PC의 파일을 편집하면 저장하면 자동으로 동기화됩니다. BitTorrent Sync는 파일 (La Dropbox 등)을 저장하는 중앙 서버에 의존하지 않으므로 이론적으로 민감한 정보를 저장하는 타사로 인한 문제는 없어야합니다.


0

나에게 잘 맞는 솔루션-Mac에서 로컬로 편집하고 파일을 원격 컴퓨터와 자동으로 동기화

  1. 원격 시스템에 비밀번호가없는 로그인이 있는지 확인하십시오. 그렇지 않은 경우 다음 단계를 수행하십시오. http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/

  2. ~ / Library / LaunchAgents / filesynchronizer.plist에 다음 내용으로 파일을 만듭니다.

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>filesynchronizer</string> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>-avz</string> <string>/Users/USERNAME/SyncDirectory</string> <string>USERNAME@REMOTEMACHINE:~</string> </array> <key>WatchPaths</key> <array> <string>/Users/USERNAME/SyncDirectory</string> </array> </dict> </plist>

  3. 터미널 창에서

    launchctl load ~/Library/LaunchAgents/filesynchronizer.plist

  4. 그게 다야. ~ / SyncDirectory의 모든 파일 변경 사항은 원격 시스템의 ~ / SyncDirectory와 동기화됩니다. 로컬 변경 사항은 모든 원격 변경 사항을 대체합니다.

그러면 SyncDirectory를 모니터하는 시작된 작업이 작성되며, 변경 사항이있을 때마다 rsync를 실행하여 디렉토리를 원격 시스템에 동기화합니다.


이것은 양방향 동기화입니까?
물린

아니; 로컬에서 원격 컴퓨터로만
Ran Locar

0

lsyncd 는 sshfs 접근법의 훌륭한 대안으로 보입니다. "-지연 0"을 사용하면 실시간으로 작동합니다.


0

FileZilla 사용

이것은 Mac 및 Windows 사용자에게 적용됩니다 (Mac에서 사용). 몇 년 동안 나열된 답변 중 몇 가지를 사용했으며 FileZilla 가 SSH 액세스 권한이있는 원격 호스트에서 파일을 편집 할 때 내 요구에 잘 부합한다는 것을 알았습니다. 설정도 빠릅니다.

  • 새 서버 연결을 구성합니다
  • 서버에 연결
  • 편집하려는 파일을 마우스 오른쪽 버튼으로 클릭하고을 선택 View/Edit합니다.

기본 편집기 (Sublime)가 표시되지만 설치 한 모든 편집기에서 작동합니다.

  • 파일을 저장하면 Filezilla에서 "이 파일을 서버로 다시 업로드"할 것인지 묻는 메시지가 자동으로 표시됩니다. "예"를 클릭하면 업데이트됩니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.