SSH üzerinden Sublime nasıl kullanılır


236

İş sunucuma SSH girdiğimde Sublime Text 2'yi editör olarak kullanmaya çalışıyorum ve güldüm. Ben yardımcı olabilir gibi görünüyor bu http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (diğer birçok yazı arasında) buldum , ama tam olarak takip etmiyorum , özellikle 5. satırdaki uzak değişken için hangi değerleri koymalıyım. Yerel kök dizinime "/ Users / path / to / local / copy" ayarladım, ancak bunun doğru olup olmadığını veya daha fazlası olup olmadığını bilmiyorum yapmak. Düşüncesi olan var mı? OSX10.8 kullanıyorum


12
Daha kolay kullanımı buldum osxfusevesshfs yerel olarak ST2 üzerinden uzaktan dizinleri ve sonra düzenlemeyi monte etmek benim mac.
AGS

Sftp için popüler bir ST2 eklentisi var. AGS'nin atıfta bulunduğuna inandığım bir sistemin daha ayrıntılı açıklaması: superuser.com/questions/134140/… . Girişte otomatik yükleme ile ilgili bir sorunum vardı ve Platypus ile yapılan geçici bir giriş komut dosyası kullanmak zorunda kaldım. Ayrıca daha iyi bir macfuse sürümüne ihtiyacım vardı - eğer ilgilenirseniz bağlantıyı bulabilir miyim göreceğim.
hukukçu

Snow Leopard (10.6.8) ile MacFuse için güncellenmiş bir çekirdeğe ihtiyacım vardı (yani, macfuse-core-10.5-2.1.9.dmg) - işte nereden aldığımın bağlantısı: blog.urbaninsight.com/2011 / 04/18 /… Eğer ilgileniyorsanız, bu sizi çok fazla baş ağrısından kurtarmalıdır.
kanun listesi

Canlı olmaz ve günlük dosyalarını ve şeyleri izlemek için daha az uygundur, ancak genellikle gitolit kurmak buna değebilir. Sadece git pull ve oynamak için yerel her şeye sahip. Sonra tekrar bir sürü insan bu gün hızlı internet var ve netwok gecikme hissetmek olmaz ... Her şey senin kurulum bağlıdır.

Yanıtlar:


161

Üç yol vardır:

Ayrıca, teoride, X11'i uzak sunucuya kurabilir ve Sublime'ı VNC veya X11 iletimi üzerinden çalıştırabilirsiniz, ancak bunu yapmanın bir anlamı yoktur.


1
Ayrıca bkz. İlgili superuser.com soru superuser.com/questions/581292/…
Mikko Ohtamaa

11
SSHFS / osxfuse kombinasyonu benim için çalıştı! Teşekkürler. Bu sorunla Diğerleri için github.com/osxfuse/osxfuse/wiki/SSHFS
thumbtackthief

sftp eklentisi ile emacs gibi interaktif kabuklar ve repl gibi araçları kullanabilir miyim?
Edmondo1984

@ Edmondo1984 bunun için gerçek bir terminal kullan
Mikko Ohtamaa

1
Yüce SFTP aslında dosyaları uzaktan, ancak ST proje bölmesi olmadan düzenlemenize izin verir (bu yüzden hiçbir yere gitmeyin ) veya rsync gibi bir şey yapar. Test etmek için ücretsiz bir deneme var.
Wernight

102

TextMate'lerden esinlenilen rsub'ı kullanabilirsiniz rmate. Açıklamasından:

Rsub, TextMate 2'nin Sublime Text 2 için 'rmate' özelliğinin bir uygulamasıdır ve dosyaların SSH port yönlendirme / tünelleme kullanılarak uzak bir sunucuda düzenlenmesine izin verir.

İşte nasıl düzgün bir şekilde ayarlanacağına dair iyi bir öğretici .


2
Ben de rsub işe almak bir çırpıda olduğunu ve sudo izin verir, bu harika olduğunu kabul ediyorum. Ben doğru işe almak bazı problemlerle karşılaştım, ama SO da bunun cevabı vardı: stackoverflow.com/questions/18938950/…
Ross R

7
bu ücretsiz olduğu için lütfen ilk cevap yerine bu cevabı işaretleyin
theodore

Rehber, benim gibi toplam bir terminal noob için bile mükemmel çalıştı. Teşekkürler!
Henrik

66

Windows'tayım ve 4 yöntem kullandım: SFH , WinSCP , Unison ve Sublime Text, X11 ile Linux'a SSH'yi Windows'a iletiyor (evet, bunu dağınık yapılandırmalar olmadan ve ücretsiz bir araç kullanarak yapabilirsiniz).

Dördüncü yol, Linux makinenize yazılım yükleyebilmeniz için en iyisidir.

Dördüncü yol:

MobaXterm

  1. MobaXterm'i Windows'a yükleyin
  2. SSH'yi MobaXterm'den Linux kutunuza
  3. Linux kutunuza Sublime Text 3'ü yükleyin . Ubuntu'da şu şekilde yapabilirsiniz
  4. Komut isteminde, subl
  5. Bu kadar! Artık Linux'ta çalışan yüce metin var, ancak penceresi Windows masaüstünüzde çalışıyor. Bu mümkündür, çünkü MobaXterm X11'i SSH üzerinden iletmeyi sizin için halleder, böylece devam etmek için korkak bir şey yapmak zorunda kalmazsınız. Ufacık bir gecikme olabilir, ancak dosyalarınızı asla senkronize olmayacak, çünkü onları doğrudan Linux makinesinde düzenliyorsunuz.

Not: Belirli bir kütüphane için şikayet ediyorsa subl'yi çağırırken - mobaxterm'dan sublimetext'i başarıyla çağırmak için bunları yüklediğinizden emin olun.

Linux kutunuza yazılım yükleyemiyorsanız, en iyisi Unison'dur. Neden?

  • Bedava
  • Hızlı
  • Güvenilirdir ve hangi editörü kullandığınız önemli değildir
  • Özel yoksay listeleri oluşturabilirsiniz

SFTP

Kurulum: SFTP Sublime Text paketini kurun . Bu paket için lisans gerekiyor.

  1. Yeni bir klasör oluştur
  2. Yüce Metin Projesi olarak açın.
  3. Kenar çubuğunda, klasörü sağ tıklayın ve Uzaktan Kumanda Eşle'yi seçin.
  4. Sftp-config.json dosyasını düzenleyin
  5. 1. adımda indirilen klasörü sağ tıklayın.
  6. Yerel olarak çalışın.

Sftp-config'te genellikle ayarladım:

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

Bu, makineye bir SSH terminaline ek olarak bana oldukça sorunsuz bir uzaktan düzenleme deneyimi sunuyor.

WinSCP

  1. WinSCP'yi yükleyin ve çalıştırın
  2. Tercihler'e (Ctrl + Alt + P) gidin ve Aktar'ı ve ardından Ekle'yi tıklayın. Hazır ayarı adlandırın.
  3. Aktarım modunu ikili olarak ayarlayın (satır dönüşümleri istemezsiniz)
  4. Dosya değişikliğini "Değişiklik yok" olarak ayarla
  5. Dosya Maskesi'nin yanındaki Düzenle düğmesini tıklayın ve dahil etme ve hariç tutma dosyalarınızı ve klasörlerinizi ayarlayın (.git / .svn klasörünüz olduğunda veya yapı ürünlerinin senkronize edilmesini hariç tutmak istediğinizde kullanışlıdır).
  6. Tamam'ı tıklayın
  7. Uzak sunucunuza bağlanın ve ilgilenilen klasöre gidin
  8. Yerel makinenizde boş bir klasör seçin.
  9. Yeni oluşturulan Aktarım ayarları ön ayarınızı seçin.
  10. Son olarak, Ctrl + U (Komutlar> Uzak dizini güncel tut) tuşlarına basın ve "Başlangıçta senkronize et" ve "Alt dizinleri güncelle" öğelerinin işaretli olduğundan emin olun.

Bundan sonra, WinSCP değişikliklerinizi senkronize edecektir.

SublimeText kullanarak yerel klasörde çalışın. Sublime Text'in, düzenlenmekte olan dosyadan satır sonlarını tahmin edecek şekilde ayarlandığından emin olun.

ahenk

Kaynak ağaç büyükse (derin bir hiyerarşiyle birkaç yüz MB civarında), yukarıda açıklanan WinSCP yönteminin biraz yavaş olabileceğini buldum. Unison'u kullanarak çok daha iyi performans elde edebilirsiniz . Aşağı tarafı, Unison otomatik değil (bir tuşa basarak tetiklemeniz gerekir) ve linux makinenizde bir sunucu bileşeninin çalışmasını gerektirir. Üst tarafı, transferlerin inanılmaz derecede hızlı olması, çok güvenilir olması ve dosyaların, klasörlerin ve uzantıların göz ardı edilmesinin kurulumu inanılmaz derecede kolaydır.


SFTP setupBağlantı için +1 . SFTP'nin Windows yazılımı mı yoksa Sublime paketi mi olduğunu bilmiyordum.
Kevin Meredith

ST2, PuTTY ve biraz FileZilla için sftp kullanıyorum. Birçok denedikten sonra bulduğum en iyi kurulum. Ancak, yerel bir dosya kümesi tutmak zorunda sevmiyorum. ST'yi terminal vi editörlerinden li vi veya nano'ya tercih ederim - sunucuda ST3'ü tatlı bir anlaşma gibi yapıyor. ipucu için
Bosworth99

Eğer bir cyberduck (iseniz cyberduck.io/?l=en ) kullanıcı, Sublime Text bütünleştirir çok iyi.
sakurashinken

33

@ Ubik'in cevabını takip etmek için, 'subl' komutunun uzak sunucunuzda çalışmasını sağlayan üç basit (bir kerelik) adım şunlardır:

  1. [ Local ] Sublime Package Manager'ırsub kullanarak paketi Sublime Text'e yükleyin
  2. [ Yerel ] Aşağıdaki Bash komutunu yürütün (bu rsub'ın gizli sosu olan bir SSH tüneli kuracaktır):

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
  3. [ Sunucu ] Uzak sunucunuzda aşağıdaki Bash komutunu yürütün (bu 'subl' kabuk komutunu yükler):

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

Ve işte! Artık SSH üzerinden Sublime Text kullanıyorsunuz.

Sublime Text'de örnek bir dosyayı sunucudan aşağıdaki gibi bir şeyle açabilirsiniz. subl ~/test.txt


1
Ben almaya devam: /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. Düşünceler?
thumbtackthief

1
Evet: ssh komutunuza -R 52698: localhost: 52698 ekleyin. Buraya bakın: stackoverflow.com/questions/18938950/...
Ross R

Yararlı bulduğum Noob ipucu: Yerel makinenizde Sublime'ı çalıştırmayı unutmayın. Bu aslında sunucuyu başlatır.
Magne

@RossR - bu çalışmıyor. Benimki şu şekilde görünüyor: "RemoteForward 52698 127.0.0.1:52698 -R 52698: localhost: 52698" ve yine aynı hata veriyor: "localhost üzerinde TextMate'e bağlanılamıyor: 52698"
FooBar 15:14

1
yukarıdaki çalışır, u sadece uzak sunucuyu daha sonra yeniden başlatmanız gerekir veya u bağlantı reddedildi hatası almaya devam edecektir.
ctf0

10

MacOS'tayım ve benim için en uygun yol ücretsiz (Windows için de mevcut) olan CyberDuck'u kullanmaktır . Uzak SSH dosya sisteminize bağlanabilir ve yerel düzenleyicinizi kullanarak dosyanızı düzenleyebilirsiniz. CyberDuck'ın yaptığı şey, dosyayı yerel işletim sisteminizde geçici bir yere indirmek ve düzenleyicinizle açmaktır. Dosyayı kaydettikten sonra CyberDuck dosyayı otomatik olarak uzak sisteminize yükleyin. Yerel düzenleyicinizi kullanarak uzak dosyanızı düzenliyormuşsunuz gibi şeffaf görünüyor. Cyberduck geliştiricileri ayrıca uzak dosya sistemlerini monte etmek için MountainDuck yapıyor.


1
Bu sudo ile çalışmıyor olsa da, ben upvoted ... (yazmak için süper kullanıcı erişimine ihtiyaç duyan dosyalar)
Tiago Coelho

1
Bu kesin çözümü göndermek için geldi. CyberDuck kullandığınız sürece çok kullanışlıdır. Ancak bunun yalnızca CyberDuck çalışırken çalıştığını unutmayın. Aynı yöntemi diğer editörlerde dosyaları açmak için de kullanabilirsiniz, ancak hepsinin güvenilir bir şekilde çalışmayacağını ve bağlantıyı kaybedebileceğini veya sessizce yalnızca uzaktan (örneğin Microsoft Excel) yerine yerel olarak kaydedilebileceğini keşfettim. Yine de Sublime kullanarak bu konuda tek bir sorun yaşamadım.
user5359531

8

Üzerinde çalıştığım bir şeyi ' xeno ' deneyebilirsiniz . Bir SSH bağlantısı üzerinden Sublime Text'de (veya gerçekten herhangi bir yerel düzenleyicide) dosyaları / klasörleri açmanıza ve uzak makinedeki değişiklikleri otomatik olarak senkronize etmenize olanak tanır. Neredeyse tüm POSIX sistemlerinde çalışmalıdır (Ben kendimi OS X'den Linux makinelerine bağlanmak ve Sublime Text'de dosyaları düzenlemek için kullanıyorum). Ücretsiz ve açık kaynak. Biraz geri bildirim almak isterim.

Daha fazla bilgi için: temel olarak yerel bir düzenleyicide uzak bir makinedeki dosyaları ve klasörleri düzenlemenizi sağlayan Python'da yazılmış bir Git / SSH karışımıdır. Çekirdek modüllerini yapılandırmanız gerekmez, kalıcı bir bağlantınız olması gerekmez, hepsi otomatiktir ve çalışma dışı Git deposu kullandığından mevcut kaynak denetimine müdahale etmez. Ayrıca, Git üzerine kurulduğundan, son derece hızlıdır ve eski zaman damgalarına sahip tüm dosyaları tıkayacak olan SSHFS / SFTP'nin aksine, her iki uçta da değişebilen dosyaların otomatik olarak birleştirilmesini destekler.


Ve ST2 + Xeno'yu inanılmaz bir kombo yapan komut dosyaları ve yapılandırma seçeneklerine sahip bazı basit blog yayınları yazdım .. www.yeraze.com
Yeraze

5

Uzak dizini konum makinenize bağlamak için sftp'yi kullanabilir ve ardından dosyaları normalde olduğu gibi Sublime metnini kullanarak açabilirsiniz.

Uzak dizini sftp kullanarak bağlamak için Linux dosya yöneticinize aşağıdakileri girin;

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

İnternet hızınıza bağlı olarak yavaş görünebilir. Ama bu benim için çalıştı.


5

Bunun çok eski olduğunu biliyorum, ama bunu yapmaya değecek harika bir yolum var.

Ne gereklidir Conemu ve WinSCP . Bunlar basit talimatlar

  1. WinSCP.exe'yi açın ve istenen uzak sunucuma giriş yapın (Takmadan önce giriş yapmanın
    önemli olduğunu buldum ...).

  2. WinSCP tercihlerinde - iki ayar değişecek. Yerel dosyaları görmemek için Komutan yerine Gezgin türü arabirimi seçin. Eğer istemiyorsanız (ama bu burada berbat gibi görünüyor). Sublime'ı varsayılan düzenleyiciniz olarak ayarlayın.

  3. ConEmu açıkken, sekme çubuğunu sağ tıklayın ve seçeneği seçin Attach to.... Çalışan uygulamalarınızla bir iletişim kutusu açılır. WinSCP'yi seçin ve Tamam'ı seçin. ConEmu artık WinSCP ile uzak dosyalarınızı gösteren açık bir sekmeye sahip olacak.

  4. WinSCP sekmesine sağ tıklayın ve seçin New console.... İletişim kutusu açıldığında, sisteminizde Sublime çalıştırılabilir dosyasının yolunu girin. Tuşuna basmadan önce Start, yazan kutuda New console splitradyo düğmesini seçin to rightve yüzdeyi ayarlayın. Genellikle% 75'i seçerim, ancak bunu beğeninize göre özelleştirebilirsiniz ve daha sonra değiştirilebilir.

    1. Şimdi aynı pencerede Sublime'ı WinSCP'nin sağında göreceksiniz. Sublime'da, Görünüm menüsünden seçin Sidebar->Hide Sidebarve bam, artık yerel olarak yaptığınız gibi uzak dosyalarınız var - elbette uzaktan bir şey düzenlemeyle birlikte gelen birkaç uyarı ile. WinSCP yine de hızla aydınlanıyor.

İki monitörüm var - sol monitör ekranının Chrome tarayıcısı, sağ monitör kod düzenleyicisini gösteriyor. Ayrıca ConEmu, üzerinde çalıştığım siteye başka bir sekme ve ssh oluşturuyorum, bu yüzden çalıştır gulpveya gruntuzaktan gibi şeyler yapabilirim ve ayrıca komut satırından dosyaları değiştirebilirim. Ciddi gelişimi hızlandırdı.

İşte bir ekran görüntüsü:

Kurulum Ekran Görüntüsü


5

Daha önce ssh'yi uzak IP'ye ayarladığınız uzak ana bilgisayarda yaşayan dosyaları yerel olarak düzenlemenin en kolay yolu budur

# 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

Yapıldı !!!

Şimdi yerel ana bilgisayarda sadece dosyaları düzenlemeye başlayın ... dir yerel olarak listelediğinizde, alt dizine cd veya belirli bir dosyayı listeleyene kadar hiçbir şey listelenmeyebilir ... tembel yükleme ... bu düzenleme dosyalarını etkilemez

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

yukarıdaki aslında uzaktaki dosyayı

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

OSX veya Windows için Digital Ocean'daki türden bu tutkuyu görün


4

Osxfuse'a benzer bir başka mac çözümü de, uzak bir klasörü yerel disk olarak bağlamanızı sağlayan Panic Software'den FTP Gönder istemcisini kullanmaktır. Çok güvenli olan SFTP'yi destekler.


Bu seçeneği çok seviyorum. Montaj, tüm sürücüyü yüce bir proje olarak açmanıza izin vermelidir.
Mic Fok

3

GiySync adlı bir proje üzerinde çalışıyorum . Hala biraz çalışmaya ihtiyacı var, ama açık kaynak kodlu ve birkaç yıldır her gün kullanıyorum. Ayrıca GitSyncApp olarak adlandırdığım yerel bir OS X sürümü üzerinde çalışıyorum

Şu anda sadece OS X, ancak Linux ve muhtemelen Windows için destek eklemek kolay olmalı.

Dosya sistemi olaylarını izleyerek çalışır ve yerel makinenizdeki ve bir sunucunuzdaki bir proje klasörünü senkronize etmek için git'i kullanır .

Osx sigorta, Expand Drive, Transmit, rsync kullanılan çeşitli çözümler vb.

Dosya sistemi seçeneklerinin birçoğu, performansı artırmak için önbelleğe alma işlemini yapar; Diğer kişilerle çalışıyorsanız ve bir başkası sunucudaki dosyaları değiştirir gibi.

Ayrıca, boş dosyalarla sonuçlanacak bir kesintili veya yavaş ağda olsaydım da sorunlarla karşılaştım. Ya da senkronize edilmemiş dosya, önbellek garipleşti; umarım yakın zamanda taahhüt etmişsindir. Git kullanıldığında bu sorun çözülür, çünkü her bir taahhüdün bütünlüğünü kontrol eder.

İki bonus özellik:

  1. Her tasarruf için bir taahhütle sonuçlanırsınız. Süper kullanışlı değil ama zaman içinde geri dönmek zorunda kalırsanız yapabilirsiniz.
  2. Herhangi bir metin editörü ile çalışır.

0

Tam ihtiyaçlarınıza bağlı olarak BitTorrent Sync'i kullanmayı düşünebilirsiniz. Ev ve iş PC'nizde paylaşılan bir klasör oluşturun. Ev PC'nizdeki dosyaları düzenleyin (Sublime veya istediğinizi kullanarak) ve kaydettiğinizde otomatik olarak senkronize edilir. BitTorrent Sync, dosyaları depolayan merkezi bir sunucuya (la Dropbox ve benzeri) güvenmez, bu nedenle teorik olarak hassas bilgilerin depolandığı bir üçüncü taraf nedeniyle herhangi bir sorundan uzak durmalısınız.


0

Benim için harika çalışan bir çözüm - Mac'te yerel olarak düzenleme ve dosyayı otomatik olarak uzak bir makineyle senkronize etme

  1. Uzak makinede şifresiz oturum açtığınızdan emin olun. Değilse, şu adımları izleyin http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/

  2. ~ / Library / LaunchAgents / filesynchronizer.plist içinde aşağıdaki içeriğe sahip bir dosya oluşturun:

    <?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. Bir terminal penceresinde

    launchctl load ~/Library/LaunchAgents/filesynchronizer.plist

  4. Bu kadar. ~ / SyncDirectory içindeki herhangi bir dosyada yapılan değişiklikler uzak makinedeki ~ / SyncDirectory ile senkronize edilir. Yerel değişiklikler tüm uzak değişiklikleri geçersiz kılar.

Bu, SyncDirectory öğesini izleyen bir başlatma işi oluşturur ve her değişiklik olduğunda, dizini uzak makineyle senkronize etmek için rsync'i çalıştırır.


Bu iki yönlü senkronizasyon mu?
ısırıldı

Hayır; Yalnızca
yerelden

0

lsyncd , sshfs yaklaşımına iyi bir alternatif gibi görünüyor. "-Delay 0" kullanırsanız, gerçek zamanlı çalışır.


0

FileZilla Kullan

Bu Mac ve Windows kullanıcıları için geçerlidir (Mac'te kullanıyorum). Yıllar içinde listelenen cevapların birkaçını kullandım ve SSH erişimine sahip olduğum uzak bir ana bilgisayarda dosyaları düzenlerken FileZilla'nın ihtiyaçlarıma uygun olduğunu gördüm. Kurulumu da hızlı.

  • Yeni bir sunucu bağlantısı yapılandırıyorum
  • sunucuya bağlan
  • düzenlemek istediğim dosyayı sağ tıklayın ve seçin View/Edit.

Bu, varsayılan düzenleyicimi (Sublime) getirir, ancak yüklediğiniz herhangi bir düzenleyiciyle çalışır.

  • Dosyayı kaydettiğimde, Filezilla otomatik olarak "Bu dosyayı sunucuya geri yükle" isteyip istemediğimi soruyor, "Evet" i tıklıyorum ve sonra güncelleniyor.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.