Подтвердить что ты не робот

Редактирование удаленных файлов с помощью Emacs с использованием аутентификации с открытым ключом

Как я могу редактировать файлы на своем удаленном хосте, используя мой локальный Emacs, когда я могу получить доступ к удаленному хосту только через SSH с аутентификацией открытого ключа? Tramp обрабатывает обычные пароли для входа в систему довольно хорошо, но я не могу понять, как заставить его работать с парами ключей. Я использую unix/linux на обоих концах.

4b9b3361

Ответ 1

Нет эквивалента TRAMP для ssh [email protected] -i private-key.pem. Однако, если вы запустите команду оболочки ssh-add private-key.pem, тогда ssh (и, следовательно, TRAMP) автоматически будет использовать private-key.pem для аутентификации. Просто ssh [email protected] будет работать на оболочке, и открытие файла /[email protected]:~/filename.txt будет работать в emacs без запроса пароля.

Ответ 2

Я не понимаю, как Tramp отлично работает с аутентифицированными SSH-соединениями с открытым ключом. Например, предположив, что вы установили следующую конфигурацию в ~/.ssh/config:

Host remotehost
    User     mylogin
    Port     22
    Hostname remotehost.fqdn

и предположим, что вы можете правильно запустить ssh remotehost в терминале, тогда вы сможете открыть удаленный файл, используя TRAMP C-x C-f /remotehost:path/to/file

Ответ 3

Если вы находитесь в Windows, вы можете легко использовать plink с tramp. Вы должны убедиться, что двоичный файл plink находится на вашем пути и должен настроить параметр (метод настройки-m-x) для параметра tramp-default-method для добавления, который в сочетании с показателем сделает вас тем, что вы хотите.

Я разрешаю вам прочитать домашнюю страницу шпателя, как настроить конкурс, чтобы добавить свой ключ.

Существует также метод plinkx, который использует имя профиля, поэтому, когда вы делаете:

C-x C-f /putty_profile:

Он получит файл putty_profile из вашего сохраненного имени профиля шпаги.

Если вы используете Linux, то, как правило, современные дистрибутивы должны иметь ключ gnome (называемый также морским коньком), начиная с X с помощью глобального агента SSH. Пример моего дистрибутива debian:

[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

если вы выполните ssh-add (убедитесь, что у вас есть идентификатор в правильной конфигурации ~/.ssh), он должен запросить ваш пароль и определить для всех ваших сеансов X.

Если этого не происходит, у вас, вероятно, есть проблема где-то еще в вашем дистрибутиве.