Ниже приведен пример использования небольшого пользовательского файла, который не зашифрован. В этом примере имя файла .authinfo_iphone
и содержит только одну строку - Я использую его для подключения к взломанный Iphone через SSH:
machine localhost login root password alpine port ssh
Затем я использую небольшую функцию для подключения:
(defun lawlist-remote-iphone-data()
(interactive)
(let ((auth-sources '("/Users/HOME/.0.data/.0.emacs/.authinfo_iphone")))
(find-file "/ssh:[email protected]#2222:/private/var/mobile/.0.data/")))
Вы также можете использовать внешнюю программу, такую как sshpass
, а затем написать вверх функцию - командная строка выглядит следующим образом:
/usr/bin/sshpass -p 'my-password' ssh [email protected]
И вот примерная функция, которая включает эту командную строку для входа в iPhone поверх ssh. Он предполагает, что есть уже открытый буфер режима оболочки с процессом с именем *shell*
.
(defun shell-iphone()
"From an existing shell buffer with a process named `*shell*`,
log-in to the iPhone using sshpass."
(interactive)
(let* (
(password "alpine")
(port "2222")
(username "root")
(host "localhost")
(sshpass "/Users/HOME/.0.data/.0.emacs/bin/sshpass")
(ssh "/usr/bin/ssh")
(dir "/private/var/mobile/.0.data"))
(comint-send-string "*shell*"
(mapconcat 'identity `(
,sshpass
"-p"
,password
,ssh
"-p"
,port
"-l"
,username
,host
"-t"
"\"cd " ,dir " && bash --login\"") " "))
(comint-send-input)))
Как насчет использования ssh config или '.netrc'? Просто спрашиваю. – Ehvince
Действительно, похоже, что вы ищете аутентификацию на основе сертификата для ssh. Это напрямую не отвечает на ваш вопрос, но я чувствую, что это проблема [XY] (http://meta.stackexchange.com/a/66378). –
Не знаком с ssh.el, но, может быть, вы могли бы решить эту проблему, создав файл идентификации без парольной фразы для входа в систему без пароля? – vikramls