自宅PCに,Cygwinの64ビット版をインストールしました.https://github.com/ggreer/the_silver_searcher)も,64ビット環境でそのまま実行できます*1.
あとの説明のため,フォルダ名を以下のとおり定めておきます.
- 32bit版Cygwinのインストール先
- 32bit版Cygwinのホームディレクトリ
- 64bit版Cygwinのインストール先
- E:\cygwin64
- /cygdrive/e/cygwin64
- 64bit版Cygwinのホームディレクトリ
32ビット版と64ビット版でホームディレクトリが同じなのは,Windowの設定として*2,ユーザー環境変数HOMEの値をE:\cygwin\home\takehikomにしているためです.
ターミナルエミュレータはminttyを使います.E:\cygwin64\bin\mintty.exeを右ボタンでドラッグして,デスクトップ上にショートカットを作り,プロパティを編集して,リンク先を「E:\cygwin64\bin\mintty.exe」から「E:\cygwin64\bin\mintty.exe /home/takehikom/bin/mintty.sh」に変更しておきます*3.そしてダブルクリック.uname -aの出力に「x86_64」が入ったし,32ビット版のminttyも,別途立ち上げ,同時に動くことを確認しました.
といったところでタイトルの件です.64bit版Cygwinから,sshコマンドで,リモートログインできなくなったのです.実行例を示します.
$ ssh home_server ssh: Could not resolve hostname home_server: Name or service not known
home_serverは自宅サーバの名前で,~/.ssh/configでホスト情報を定義しています.しかしエラーメッセージによると,そんな名前もサービスも知らないと言うのです.
同様に~/.ssh/configで名前を定義している,自宅外のサーバにも,接続を試みたものの同じエラーとなりました.
これでは64ビット環境に乗り換えられない…
Webでいろいろ探して,一つ,情報を見つけました.
/home/mikio にホームを設定してるのではなく、 c:/Users/mikio にHOMEを設定し てる場合でssh接続すると、下記のように /home/mikio ディレクトリが作成できないと怒られてしまう。
http://mikio.github.io/article/2012/12/22_cygwinssh.html
(略)
この場合は、 /etc/passwd の /home/mikio となってるところを、 /cygdrive/c/Users/mikio に書き換えれば良い。
コマンド(引数)も,エラーメッセージも異なりますが,手元の環境を見直してみると,次のとおり,該当します.
$ grep takehikom /etc/passwd takehikom:(略):/home/takehikom:/bin/bash $ pwd /cygdrive/e/cygwin/home/takehikom
書き換えておきましょう.vipwコマンドはなく,vimコマンドを使いました.
$ vim /etc/passwd (編集内容は省略) $ grep takehikom /etc/passwd takehikom:(略):/cygdrive/e/cygwin/home/takehikom:/bin/bash
これでリモートログインをやり直すと…
$ ssh home_server Welcome to Ubuntu 13.10 (GNU/Linux 3.11.0-12-generic x86_64)
めでたく入れました.自宅外へも,リモートログインできました.
/home/takehikom ディレクトリ(自分の場合は)の件,気になったので,64ビット環境でls /home/takehikomを実行してみると,そこに.sshとbinのディレクトリだけがあることに気づきました.
これで「Name or service not known」と出たのに合点がいきました./etc/passwdの編集前は,/home/takehikom/.ssh以下のファイルを参照していたのでした.
上のとおり,ホームディレクトリを独自に設定したために,~/.sshと/home/takehikom/.sshとが別になっていました.前者は/cygdrive/e/cygwin/home/takehikom/.ssh,後者は/cygdrive/e/cygwin64/home/takehikom/.sshに対応します.
/home/takehikom/binにあるのはmintty.shのみです.以前に置いていて,この日記を書くまで,忘れてしまっていました./home/takehikom (/cygdrive/e/cygwin64/home/takehikom)は当面のあいだ,参照しないほうが良さそうなので,minttyのショートカットのリンク先も,「E:\cygwin64\bin\mintty.exe -t mintty /cygdrive/e/cygwin/home/takehikom/bin/mintty.sh」に変更しておきました.