Emacsが好きなんだ!!
筆者はEmacsが好きです。
目下Windows環境しか使っていなのですが、とにかく開発ではIDEを使いながら結局はEmacsでゴシゴシ書くこと多いです。
ということで、今回色々学習したことを記載してみます。
SSH経由でファイルが触りたい
EmacsにはTrampなる、ssh経由でローカルファイルと同じくファイル編集ができる機構があります。
某NTTコミュニケーションズのwebサーバは未だftpなので、Emacsからftpを使うことは多いのですが、さすがに時代遅れですよね。
時代に取り残されないため、努力努力。
[Emacs] リモートサーバで開発するときの Emacs 設定まとめにssh接続方法が以下のように書いてあるのですが、実際にやってみるとEmacsがフリーズしていしまいます。
C-x C-f /ssh:user@hostname:path/to/file悲しいかな止まってしまったEmacs
Opening connection for xxx@xxXX using ssh...\
sshの環境不備が考えられたので、M-x sshでssh接続をしてみたところ、以下のエラーになりあえなく撃沈
Pseudo-terminal will not be allocated because stdin is not a terminal. CreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Permission denied, please try again. CreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Permission denied, please try again. CreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory
これについてはパスワード機構に関するものとわかったので、ssh-keygenにより公開鍵方式に変更してみましたが状況変わらず。!!
- Windows10(64bit)側でssh-keygen
cmdよりssh-keygenを実行、その後全てデフォでEnterキーを入力
ssh-keygen
Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\XXXX/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\ys62.YSKAD/.ssh/id_rsa. Your public key has been saved in C:\Users\ys62.YSKAD/.ssh/id_rsa.pub. The key fingerprint is: SHA256:fS6+Lz7Jyo446IqTURWapesq+OktkeljG39CRBAngxc ys62@yskad@PC1801DELD The key's randomart image is: +---[RSA 2048]----+ | .E++. | |. .Oo | | .+o | | ... . | | ..+ S . . | |..+ . o | |.+o+ .... | |*.*=o..o .=. | |=B*+++..+o+=. | +----[SHA256]-----+
先の操作で、「C:\Users\XXXX\.ssh\id_rsa.pub」として公開キーができているので、こちらをサーバ側に追加します。
サーバ側のユーザフォルダに.ssh/authorized_keys ファイルとして保存します。すでにファイルがある場合は、最終行に追加してください。
サーバ側の.ssh は chmod にて 700 パーミッションに、 authorized_keys は chmod にて 600にしておく必要があります。
ここまでの設定が正常に行っていれば、Windowsからssh ユーザ名@サーバ名 でパスワードなしで接続できます。
接続できなかったら、エラーメッセージなどで環境を再チェックしてください。
ssh公開鍵方式で接続できてしまえば、なにかが変わる。
可能性を信じていたのですが、残念ながら、Emacsがフリーズします。
悲しいかな止まってしまったEmacsOpening connection for xxx@xxXX using ssh...\
やっぱりWindows環境でのEmacsには乗り越えなきゃならんものが有るようです。
やはりWindows環境でのEmacsには対応していなかった
もっと早く見つければよかったのですが、Emacs Tramp でリモート上のファイルを直接編集する方法|Windowsにも対応に制限事項と対処が書かれていました。
直接sshは使えないので、plinkを使用しての接続となるとのこと。
書かれている通り、次のようにすれば、全く問題なく動作します。
C-x C-f /plink:user@hostname:path/to/file
うーん。Windows上で、Emacsは苦労させれますが、この快適さはやめられません。
これからも頑張っていきましょう!!