I'm using tramp with Emacs on Windows Xp. I want to connect to a linux box via ssh using putty (0.53b). The ssh server is running OpenSSH_3.8p1 Debian 1:3.8p1-2. The ssh/sshx methods using the cygwin OpenSSH binaries didn't work at all out-of-the-box, but I didn't dig into the problem, instead I looked at putty/plink. Using plink the connection is opened, the password is prompted, but after `stty -inlcr -echo kill '^U'` it doesn't recognize the shell prompt any more, and after 30 seconds it gives up. The reason is that tramp-send-command-internal uses tramp-rsh-end-of-line (per default "\n") as line terminator, which seems to expand to CRLF on windows. The server misinterprets this as 2 line breaks, which results in 2 command prompts in the new stty mode: "$ $ ". This is the case after every command given, since the wrong line terminator is always used.
I fixed this by setting tramp-rsh-end-of-line to \r in my .emacs file, everything works fine thereafter. The documentation to that variable says it normally doesn't need to be changed, and a notification is requested otherwise. I guess it really is a windows specific problem that \n expands to 2 characters. Another way to fix it would be to tell stty to recognize CRLF as one line-break instead of two, although I don't know how to do this properly. Below is the tramp debugging output and the tramp state. Please CC: me on this thread, since I'm not subscribed to your mailing list. Cheers, Greek0 ----debugging output start---- # Opening connection for [EMAIL PROTECTED] using plink... # Waiting for prompts from remote shell # Waiting 60s for prompt from remote shell # Looking for regexp "^.*\([pP]assword\|passphrase.*\):# Sending password # Looking for regexp ".*ogin: *" from remote shell # Looking for regexp "^[^#$%> ]*[#$%>] *" from remote shell # Looking for regexp "^[^#$%> ]*[#$%>] *\(\[[0-9;]*[a-zA-Z] *\)*" from remote shell # Looking for regexp "^.*\(Connection \(?:\(?:clo\|refu\)sed\)\|Host key verification failed\.\|Login \(?:[Ii]ncorrect\)\|Name or service not known\|\(?:Permission denied\|Sorry, try again\)\.\).*\|^.*\(Received signal [0-9]+\).*" from remote shell # Looking for regexp "\(Are you sure you want to continue connecting (yes/no)\?\)\s-*" from remote shell # Looking for regexp "\(Store key in cache\? (y/n)\)\s-*" from remote shell # Looking for regexp "\(TERM = (.*)\|Terminal type\? \[.*\]\)\s-*" from remote shell # Looking for regexp "^.*\([pP]assword\|passphrase.*\):# Looking for regexp ".*ogin: *" from remote shell # Looking for regexp "^[^#$%> ]*[#$%>] *" from remote shell # Looking for regexp "^[^#$%> ]*[#$%>] *\(\[[0-9;]*[a-zA-Z] *\)*" from remote shell # Looking for regexp "^.*\(Connection \(?:\(?:clo\|refu\)sed\)\|Host key verification failed\.\|Login \(?:[Ii]ncorrect\)\|Name or service not known\|\(?:Permission denied\|Sorry, try again\)\.\).*\|^.*\(Received signal [0-9]+\).*" from remote shell # Looking for regexp "\(Are you sure you want to continue connecting (yes/no)\?\)\s-*" from remote shell # Looking for regexp "\(Store key in cache\? (y/n)\)\s-*" from remote shell # Looking for regexp "\(TERM = (.*)\|Terminal type\? \[.*\]\)\s-*" from remote shell # Looking for regexp "^.*\([pP]assword\|passphrase.*\):# Looking for regexp ".*ogin: *" from remote shell # Looking for regexp "^[^#$%> ]*[#$%>] *" from remote shell # Looking for regexp "^[^#$%> ]*[#$%>] *\(\[[0-9;]*[a-zA-Z] *\)*" from remote shell # Looking for regexp "^.*\(Connection \(?:\(?:clo\|refu\)sed\)\|Host key verification failed\.\|Login \(?:[Ii]ncorrect\)\|Name or service not known\|\(?:Permission denied\|Sorry, try again\)\.\).*\|^.*\(Received signal [0-9]+\).*" from remote shell # Looking for regexp "\(Are you sure you want to continue connecting (yes/no)\?\)\s-*" from remote shell # Looking for regexp "\(Store key in cache\? (y/n)\)\s-*" from remote shell # Looking for regexp "\(TERM = (.*)\|Terminal type\? \[.*\]\)\s-*" from remote shell # Looking for regexp "^.*\([pP]assword\|passphrase.*\):# Looking for regexp ".*ogin: *" from remote shell # Looking for regexp "^[^#$%> ]*[#$%>] *" from remote shell # Found remote shell prompt. # Initializing remote shell # Sending command to remote shell: unset correct $ unset correct unset correct [EMAIL PROTECTED]:~$ [EMAIL PROTECTED]:~$ # Sending command to remote shell: unset autocorrect $ unset autocorrect unset autocorrect [EMAIL PROTECTED]:~$ [EMAIL PROTECTED]:~$ $ exec env 'ENV=' 'PS1=$ ' /bin/sh # Waiting 30s for remote `/bin/sh' to come up... exec env 'ENV=' 'PS1=$ ' /bin/sh $ $ exec env 'ENV=' 'PS1=$ ' /bin/sh $ $ # Setting up remote shell environment $ stty -inlcr -echo kill '^U' stty -inlcr -echo kill '^U' $ $ [[Regexp `\(^[^#$%> ]*[#$%>] *\|^[^#$%> ]*[#$%>] *\(\[[0-9;]*[a-zA-Z] *\)*\)\'' not found in 30 secs]] ----debugging output end---- Emacs : GNU Emacs 21.3.1 (i386-mingw-nt5.1.2600) of 2004-03-10 on NYAUMO Package: tramp (2.0.36) current state: ============== (setq tramp-ls-command nil tramp-test-groks-nt nil tramp-file-exists-command nil tramp-current-multi-method nil tramp-current-method nil tramp-current-user nil tramp-current-host nil tramp-auto-save-directory nil tramp-default-method "plink" tramp-rsh-end-of-line "\n" tramp-default-password-end-of-line "\n" tramp-remote-path '("/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin" "/usr/ccs/bin" "/local/bin" "/local/freeware/bin" "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin") tramp-login-prompt-regexp ".*ogin: *" tramp-password-prompt-regexp "^.*\\([pP]assword\\|passphrase.*\\): tramp-wrong-passwd-regexp "^.*\\(Connection \\(?:\\(?:clo\\|refu\\)sed\\)\\|Host key verification failed\\.\\|Login \\(?:[Ii]ncorrect\\)\\|Name or service not known\\|\\(?:Permission denied\\|Sorry, try again\\)\\.\\).*\\|^.*\\(Received signal [0-9]+\\).*" tramp-yesno-prompt-regexp "\\(Are you sure you want to continue connecting (yes/no)\\?\\)\\s-*" tramp-yn-prompt-regexp "\\(Store key in cache\\? (y/n)\\)\\s-*" tramp-temp-name-prefix "tramp." tramp-file-name-structure '("^/\\(\\([a-zA-Z_0-9-]+\\):\\)?\\(\\([^:@/ ]*\\)@\\)?\\([a-zA-Z0-9_.#-]*\\):\\(.*$\\)" 2 4 5 6) tramp-file-name-regexp "\\`/[^/:]+:" tramp-multi-file-name-structure '("^/\\(\\([a-zA-Z_0-9-]+\\)\\)?\\(\\(:%s\\)+\\)?:\\(.*$\\)" 2 3 -1) tramp-multi-file-name-hop-structure '("\\([a-zA-Z_0-9-]+\\):\\([^:@/ ]*\\)@\\([a-zA-Z0-9_.#-]*\\)" 1 2 3) tramp-multi-methods '("multi" "multiu") tramp-multi-connection-function-alist '(("telnet" tramp-multi-connect-telnet "telnet %h%n") ("rsh" tramp-multi-connect-rlogin "rsh %h -l %u%n") ("remsh" tramp-multi-connect-rlogin "remsh %h -l %u%n") ("ssh" tramp-multi-connect-rlogin "ssh %h -l %u%n") ("su" tramp-multi-connect-su "su - %u%n") ("sudo" tramp-multi-connect-su "sudo -u %u -s -p Password:%n")) tramp-methods '(("ftp") ("rcp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "rsh") (tramp-copy-program "rcp") (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("scp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("scp1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-e" "none")) (tramp-copy-args ("-1")) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("scp2" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-2" "-e" "none")) (tramp-copy-args ("-2")) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("scp1_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh1") (tramp-copy-program "scp1") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("scp2_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh2") (tramp-copy-program "scp2") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("rsync" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "rsync") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args ("-e" "ssh")) (tramp-copy-keep-date-arg "-t") (tramp-password-end-of-line nil)) ("remcp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "remsh") (tramp-copy-program "rcp") (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("rsh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "rsh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("ssh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("ssh1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-e" "none")) (tramp-copy-args ("-1")) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("ssh2" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-2" "-e" "none")) (tramp-copy-args ("-2")) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("ssh1_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh1") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("ssh2_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh2") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("remsh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "remsh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("telnet" (tramp-connection-function tramp-open-connection-telnet) (tramp-login-program "telnet") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("su" (tramp-connection-function tramp-open-connection-su) (tramp-login-program "su") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-" "%u")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("sudo" (tramp-connection-function tramp-open-connection-su) (tramp-login-program "sudo") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-u" "%u" "-s" "-p" "Password:")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("multi" (tramp-connection-function tramp-open-connection-multi) (tramp-login-program nil) (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("scpx" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ("sshx" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("krlogin" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "krlogin") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-x")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line nil)) ("plink" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-ssh")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line "xy")) ("plink1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-ssh")) (tramp-copy-args nil) (tramp-copy-keep-date-arg nil) (tramp-password-end-of-line "xy")) ("pscp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") (tramp-copy-program "pscp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-ssh")) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line "xy")) ("fcp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "fsh") (tramp-copy-program "fcp") (tramp-remote-sh "/bin/sh -i") (tramp-login-args ("sh" "-i")) (tramp-copy-args nil) (tramp-copy-keep-date-arg "-p") (tramp-password-end-of-line nil)) ) tramp-end-of-output "///7f2dd0f0dffa0d80e662fb9cd6ae75ff" tramp-coding-commands '(("mimencode -b" "mimencode -u -b" base64-encode-region base64-decode-region) ("mmencode -b" "mmencode -u -b" base64-encode-region base64-decode-region) ("recode data..base64" "recode base64..data" base64-encode-region base64-decode-region) ("uuencode xxx" "uudecode -o -" tramp-uuencode-region uudecode-decode-region) ("uuencode xxx" "uudecode -p" tramp-uuencode-region uudecode-decode-region) ("uuencode xxx" "tramp_uudecode" tramp-uuencode-region uudecode-decode-region) ("tramp_encode_with_module" "tramp_decode_with_module" base64-encode-region base64-decode-region) ("tramp_encode" "tramp_decode" base64-encode-region base64-decode-region)) tramp-actions-before-shell '((tramp-password-prompt-regexp tramp-action-password) (tramp-login-prompt-regexp tramp-action-login) (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-pattern tramp-action-succeed) (tramp-wrong-passwd-regexp tramp-action-permission-denied) (tramp-yesno-prompt-regexp tramp-action-yesno) (tramp-yn-prompt-regexp tramp-action-yn) (tramp-terminal-prompt-regexp tramp-action-terminal)) tramp-multi-actions '((tramp-password-prompt-regexp tramp-multi-action-password) (tramp-login-prompt-regexp tramp-multi-action-login) (shell-prompt-pattern tramp-multi-action-succeed) (tramp-shell-prompt-pattern tramp-multi-action-succeed) (tramp-wrong-passwd-regexp tramp-multi-action-permission-denied)) tramp-terminal-type "dumb" tramp-shell-prompt-pattern "^[^#$%>\n]*[#$%>] *\\(\\[[0-9;]*[a-zA-Z] *\\)*" tramp-chunksize nil shell-prompt-pattern "^[^#$%>\n]*[#$%>] *" backup-by-copying nil backup-by-copying-when-linked nil backup-by-copying-when-mismatch nil backup-by-copying-when-privileged-mismatch 200 file-name-handler-alist '(("\\.Z\\(~\\|\\.~[0-9]+~\\)?\\'\\|\\.bz2\\'\\|\\.tgz\\'\\|\\.g?z\\(~\ \|\\.~[0-9]+~\\)?\\'" . jka-compr-handler) ("^/[^/]*$" . tramp-completion-file-name-handler) ("\\`/[^/:]+:" . tramp-file-name-handler) ("\\`/:" . file-name-non-special)) ) _______________________________________________ Tramp-devel mailing list [EMAIL PROTECTED] http://lists.nongnu.org/mailman/listinfo/tramp-devel