2009-08-30 17 views
30

Jak mogę edytować pliki na moim zdalnym hoście za pomocą moich lokalnych emacs, gdy mogę uzyskać dostęp do zdalnego hosta przez SSH z uwierzytelnianiem kluczem publicznym? Tramp dobrze radzi sobie z normalnym logowaniem, ale nie wiem, jak sprawić, by działał z parami kluczy. Używam unix/linux na obu końcach.Edycja plików zdalnych za pomocą Emacsa za pomocą uwierzytelniania za pomocą klucza publicznego

+0

Używam TRAMP z uwierzytelnianiem kluczem publicznym. Czy mógłbyś trochę wyjaśnić, co dzieje się nie tak (i ​​jakiej wersji używasz Emacs)? Uważam, że TRAMP po prostu dzwoni do SSH, więc najpierw upewnię się, że "ssh yourname @ yourhost" działa zgodnie z oczekiwaniami przy logowaniu kluczem publicznym. – Phil

+1

Dzięki, twoje zapytanie skierowało mnie na właściwy tor, a ja rozwiązałem problem (nauczyłem się lepiej używać SSH). Jednak nadal chciałbym wiedzieć, jak korzystać z Trampa, gdy plik tożsamości SSH znajduje się w niestandardowej lokalizacji, a zatem trzeba użyć opcji wiersza polecenia SSH "-i". – pico

+1

Możesz dodać plik tożsamości za pomocą polecenia ssh-add. – remvee

Odpowiedz

30

Brak jest równoważnika TRAMP do ssh [email protected] -i private-key.pem. Jeśli jednak uruchomisz komendę powłoki ssh-add private-key.pem, ssh (a tym samym TRAMP) automatycznie użyje uwierzytelnienia private-key.pem. Po prostu ssh [email protected] będzie działać na powłoce, a otwarcie pliku /[email protected]:~/filename.txt będzie działać w emacs, bez pytania o hasło.

+5

Jeśli używasz pliku '~/.ssh/config' do zarządzania kluczami, zobacz odpowiedź [@Sebastien] (http://stackoverflow.com/a/10738277/881224). – Droogans

1

Jeśli korzystasz z systemu Windows, możesz z łatwością korzystać z funkcji "puknij z trampem". Musisz upewnić się, że plik binarny jest na twojej ścieżce i musisz spersonalizować zmienną (M-x customize-option) domyślną metodę trampową, która w połączeniu ze słowem pageant dostarczy ci tego, czego chcesz.

Pozwoliłem ci przeczytać stronę domową putty, jak skonfigurować konkurs, aby dodać swój klucz.

Istnieje również metoda plinkx które wykorzystują nazwę profilu tak, kiedy wykonujesz:

C-x C-f /putty_profile: 

Będzie uzyskać putty_profile ze swojego kit zapisanej nazwy profilu.

Jeśli korzystasz z Linuksa, zwykle nowoczesne dystrybucje powinny mieć klucz gnome (nazwany także konik morski), który zaczyna X od globalnego agenta SSH. Przykład na moim debian dystrybucji:

[email protected]:~$ ps aux|grep ssh-agent 
chmouel 2917 0.0 0.0 4904 552 ?  Ss Aug30 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/seahorse-agent --execute x-session-manager 

jeśli zrobić ssh-add (upewniając się, że posiada tożsamość w katalogu ~/.ssh prawidłowo skonfigurowana) powinien zażądać dla hasła i identyfikacji dla wszystkich sesji X.

Jeśli tak się nie stanie, prawdopodobnie masz problem gdzie indziej w swojej dystrybucji.

13

Nie otrzymuję pytania, ponieważ Tramp działa doskonale z połączeniami SSH uwierzytelnianymi za pomocą klucza publicznego. Na przykład, zakładając, że zostały ustawione następujące config w ~/.ssh/config:

Host remotehost 
    User  mylogin 
    Port  22 
    Hostname remotehost.fqdn 

i przy założeniu, że można uruchomić ssh remotehost prawidłowo w terminalu, to jesteś w stanie otworzyć plik zdalny przy użyciu TRAMP Cx Cf /remotehost:path/to/file

+3

To była dobra odpowiedź, wystarczyło dodać 'IdentityFile ~/.ssh/identity-file' – Alex

Powiązane problemy