以下是使用未加密的小型自定義文件的示例。在這個例子中,文件名是.authinfo_iphone
,它僅包含一個行 - 我用它通過ssh連接到我的越獄的iPhone:
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]
這裏是一個示例函數,它包含該命令行通過ssh登錄到iPhone。它考慮到已經有一個開放的shell模式緩衝區,其進程名爲*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 2014-11-03 13:42:11
這聽起來像是你正在尋找基於證書的ssh認證。這不直接回答你的問題,但我覺得這是[XY問題](http://meta.stackexchange.com/a/66378)。 – 2014-11-03 18:32:50
不熟悉ssh.el,但也許你可以通過創建不帶密碼的識別文件來解決此問題,無需密碼就可以登錄? – vikramls 2014-11-07 20:52:05