Windows 版 Emacs で plink を使わず Tramp する
「emacs windows tramp」の検索結果が plink まみれ
Windows 版 Emacs で Tramp でリモートアクセスしたいなら、ssh (scp) ではなく、Plink (PuTTY) をインストールしてC-x C-f /plink:username@address:~でファイルを開こう! みたいな記事が多い。
今どきの Windows は OpenSSH Client (ssh.exeやssh-keygen.exeなど)が入っているため、わざわざ plink をインストールしたくない...
Windows 版 Emacs でsshすると出る Pseudo-terminal will not be allocated because stdin is not a terminal.を回避する方法はないものか...
Trampマニュアルにsshxが書かれてた
Tramp にはsshx、scpxというアクセスメソッドが存在する
sshxアクセスメソッド
sshx
Works like ssh but without the extra authentication prompts. sshx uses ‘ssh -t -t host -l user /bin/sh’ to open a connection with a “standard” login shell. It supports changing the remote login shell /bin/sh.
Note that sshx does not bypass authentication questions. For example, if the host key of the remote host is not known, sshx will still ask “Are you sure you want to continue connecting?”. TRAMP cannot handle such questions. Connections will have to be setup where logins can proceed without such questions.
sshx is useful for MS Windows users when ssh triggers an error about allocating a pseudo tty. This happens due to missing shell prompts that confuses TRAMP.
sshx supports the ‘-p’ argument.
scpxアクセスメソッド
scpx
scpx is useful to avoid login shell questions. It is similar in performance to scp. scpx uses ‘ssh -t -t host -l user /bin/sh’ to open a connection. It supports changing the remote login shell /bin/sh.
scpx is useful for MS Windows users when ssh triggers an error about allocating a pseudo tty. This happens due to missing shell prompts that confuses TRAMP.
This method supports the ‘-p’ argument.
上記 Tramp マニュアルに書かれている通り、Windows環境でもscpxを使えばフツーに Tramp できる
ただし yes/no に答えたり、パスワードを入力したりはできないので、事前に公開鍵認証方式をセットアップしておくなどログイン時に対話が発生しないようにしておく必要がある
おわり
plinkじゃなくて公開鍵認証をセットアップしてscpxでおk
おまけ
間違えて scpしてしまうとまるでクラッシュでフリーズしたかのように長く待たされる
tramp-connection-timeoutを 5 とかにしておくといい