以下是使用未加密的小型自定义文件的示例。在这个例子中,文件名是.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