2012-03-28 26 views
12

我認爲這是使用tramp的非常基本的問題,但它對我無效。 我有一個指向我的Amazon EC2機使用ssh config的emacs中的流氓模式

Host amazon 
    Hostname xxxx.amazonaws.com 
    Port yyy 
    User me 
    IdentityFile ~/.ssh/ubuntu 
    ForwardAgent yes 

我可以很容易地從我的終端做的ssh亞馬遜我的〜/ .ssh/config文件,我去的Amazon EC2(所以我的配置是正確的),但在emacs的 我做的:

C-x C-f /ssh1:amazon: 

我總是得到這個錯誤 在Aquamacs:

Process *tramp/ssh1 amz* exited abnormally with code 255 

在Emacs中:

tramp: Opening connection at amz using ssh1... 
tramp: Waiting for prompts from remote shell 
tramp: Waiting 60s for prompt from remote shell 
tramp-process-actions: Login failed 

我也有其他的SSH配置,他們ssh我的本地機器上的虛擬框,他們有同樣的問題。

我真的很感激任何幫助。

+0

這是值得看看'男人ssh_config' – DJJ 2015-09-07 07:47:55

回答

8

流氓方法ssh1強制ssh以參數-1的ssh v1協議模式運行。 ssh v1已經知道弱點並且不安全。因此很多網站都禁用了ssh v1協議。

您可以使用ssh -1 [email protected]從shell中進行驗證。

嘗試其他流浪漢連接方法,如ssh,sftpscpx。您可以使用C-h v tramp-methods查看所有預配置的連接方法。

+0

感謝你在哪裏權亞馬遜不接受的ssh -1,但它確實接受SSH -2,我仍然有一樣的問題。至少現在我沒有在做ssh1 :) – Matilda 2012-03-28 16:59:10

6

如果莫里茨Bunkus的回答不能解決問題,那麼你就可以
的Mx配置流浪漢輸出的詳細customize-variableRETtramp-verboseRET

特別是6級「發送並收到字符串「,這可能會幫助您確定」等待來自遠程shell的提示「是否因爲它沒有收到它識別的提示模式,或者是因爲某些更嚴重的失敗。

如果它只是接收到一個不能識別的提示,那麼你可以看看定製tramp-login-prompt-regexptramp-shell-prompt-pattern變量。

(如果你的SSH代理工作正常當然,請登錄提示不應該是相關的)

如果您正在運行在Windows中的Emacs,然後也看到這些問與答&作爲:

+0

所以看起來像我的emacs上的tramp冗長級別是9,所以它非常高。我用SSH2運行它,我得到 加載流浪漢......做 流浪漢:使用無在SSH2開幕連接... 流浪漢:等待提示來自遠程shell 流浪漢:從遠程shell等待60秒的提示 流浪漢過程-actions:登錄失敗 嗯任何其他想法? – Matilda 2012-03-28 17:11:45

+0

如果無法找到遠程提示,那麼我經常遇到shell運行類型的問題。據我所知tramp總是執行遠程shell爲'/ bin/sh'的命令。現在'/ bin/sh'可以成爲幾乎所有POSIX兼容shell的符號鏈接,而目前基於Debian/Ubuntu的發行版經常使用'dash'而不是'bash'。如果您使用奇特的提示,還會出現'zsh'和'bash'問題。 我的建議:1.如果'/ bin/sh'是'dash'的符號鏈接,那麼就試試把它改成'bash'。 2.如果'TERM'變量等於'dumb',那麼不要在RC文件中設置奇特的提示。 – 2012-03-29 19:17:52

25

有一兩件事值得一試的是使用sshx連接方法。這使得tramp嘗試避免遠程主機上的任何非標準shell配置。

像這樣:

C-x C-f /sshx:amazon: 
+0

不錯,那爲我解決了吧 – ocodo 2013-07-27 16:25:25

+1

爲什麼ssh/sshx沒有交換我永遠不會理解。 – 2017-02-04 14:58:29