Mac OS XでエックスサーバーにSSH接続

年末間際にエックスサーバーでSSH接続が出来るようになったと聞いたのでMac OS X環境からアクセスしてみました。
マニュアルを見たところ公開鍵認証方式のみでパスワード認証には対応していないとの事。なのでSSHクライアントからの接続のみかなと思いましたが鍵情報登録したらFilezillaのSFTPにも対応できるみたいですが、うちの環境だとFilezillaが途中で止まりましたね・・・
Tera Termとか使用している人はマニュアルに沿って行けば問題ないと思うのでそちらを参照ください。
xserver-ssh-01

INDEX

  1. サーバーパネルのSSH設定について
  2. [公開鍵認証用鍵ペアの生成]からの設定
  3. [公開鍵登録・設定]からの設定
  4. ターミナルからSSH接続を実行
  5. 参考サイト

サーバーパネルのSSH設定について

xserver-ssh-02
“エックスサーバーコントロールパネル > サーバーパネル > SSH設定”のメニューは[SSH設定] [公開鍵認証用鍵ペアの生成] [公開鍵登録・設定]の3つ。

[SSH設定]ではSSH接続機能のON/OFF切り替えを行う。デフォルトではOFF。

SSH接続設定方法は2通り用意されており、[公開鍵認証用鍵ペアの生成]、[公開鍵登録・設定]となります。設定は後述。

というわけで、[SSH設定]でSSH機能の使用状態をONにし、[公開鍵認証用鍵ペアの生成]からの設定、もしくは[公開鍵登録・設定]からの設定へ。

[公開鍵認証用鍵ペアの生成]からの設定

xserver-ssh-03
1つ目の設定方法、[公開鍵認証用鍵ペアの生成]では公開鍵認証用の鍵ペア(公開鍵・秘密鍵)を自動で生成してくれます。
パスフレーズを入力して「公開鍵認証用の鍵ペア生成(確認)」をクリック、続けて次ページにて「公開鍵認証用の鍵ペア生成(確定)」をクリックで公開鍵・秘密鍵が生成されます。秘密鍵は”サーバID.key”というファイル名でダウンロードされ、公開鍵はサーバ上 /.ssh/authorized_keys へ保存されます。
xserver-ssh-04

ダウンロードされた”サーバID.key”秘密鍵はファイル名を”id_rsa”にリネームし /Users/ユーザ名/.ssh/ に移動。
リネーム時に拡張子.keyが残るのでファイルの「情報を見る」より拡張子を削除する。
xserver-ssh-05

一通り設定が完了したので次の項は飛ばしてターミナルからSSH接続を実行へ。

[公開鍵登録・設定]からの設定

xserver-ssh-06
2つ目の設定方法、[公開鍵登録・設定]ではMacのターミナルで公開鍵認証用の鍵ペア(公開鍵・秘密鍵)を生成し、上図公開鍵部分へ公開鍵を登録します。手順は以下の通り。

ターミナルを起動しssh-keygenを実行し鍵ペアを生成。
保存場所、鍵名を聞かれるのでそのままEnter。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ユーザ名/.ssh/id_rsa):

鍵名を変更したい場合は以下の通り。
※鍵名はデフォルトではid_rsa、id_dsa、identity以外登録されていないので /etc/ssh_config の IdentityFileプロパティに追加する必要あり

Enter file in which to save the key (/Users/ユーザ名/.ssh/id_rsa): /Users/ユーザ名/.ssh/hoge_rsa

パスフレーズを求められるので入力。

Enter passphrase (empty for no passphrase):

確認用にもう一度求められるので再度入力。

Enter same passphrase again:

鍵ペアの生成が完了。
xserver-ssh-07

/Users/ユーザ名/.ssh/にid_rsa(秘密鍵)id_rsa.pub(公開鍵)が作成されます。
xserver-ssh-08

id_sra.pubをテキストエディタで開いてコピー。エックスサーバーサーバパネルの[公開鍵登録・設定]の公開鍵部分にペーストして「公開鍵を登録する(確認)」をクリック。続けて次ページにて「公開鍵を登録する(確定)」をクリックでサーバ上に公開鍵情報が登録されます。
xserver-ssh-09
公開鍵はサーバ上 /.ssh/authorized_keys へ保存されます。

xserver-ssh-04

サーバ上に公開鍵、Mac OS X上に秘密鍵が準備できたのでターミナルからSSH接続を実行へ。

ターミナルからSSH接続を実行

2通りのSSH接続設定、[公開鍵認証用鍵ペアの生成]、[公開鍵登録・設定]を行いましたが、共にサーバ上には /.ssh/authorized_keys が登録、Max OS X上には秘密鍵 /Users/ユーザ名/.ssh/id_rsa が保存されたのでターミナルからSSH接続を実行して行きます。

ターミナル起動。
$ ssh サーバID@サーバID.xsrv.jp -p 10022 で接続。(サーバIDは仮に”hogehoge”とする)
※接続ポートはエックスサーバー側で10022に制限されているので-pオプションで使用ポートを指定します。

$ ssh hogehoge@hogehoge.xsrv.jp -p 10022

なお、/Users/ユーザー名/.ssh/id_rsaのパーミッションが他のユーザからアクセス可能なもの(644等)の場合以下エラーが発生するので秘密鍵のパーミッションは600にしておく。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/ユーザ名/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/ユーザ名/.ssh/id_rsa
Permission denied (publickey,gssapi-with-mic).

パーミッション変更方法は以下の通り。

$ chmod 600 /Users/ユーザ名/.ssh/id_rsa

再度、SSH接続実行。初回接続時は以下が表示されるかもしれない(うろ覚えです)ので”yes”を入力してEnter。

The authenticity of host '[hogehoge.xsrv.jp]:10022 ([xxx.xxx.xxx.xxx]:10022)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? 

ポップアップが開きSSHキー”id_rsa”のパスワードを聞かれるので登録したパスフレーズを入力しOK。
xserver-ssh-10

これでエックスサーバーにSSH接続する事ができました。
試しにWordPressインストールディレクトリに移動し一覧を表示してみました。
xserver-ssh-11

というわけで年末と全くない記事でしたが来年もよろしくお願い致します。

参考サイト

Mac OS X Lion環境NetBeans IDEにプログラミング用フォントRicty導入

フォントにそこまでこだわりがある訳ではないですがNetBeans IDEのデフォルトの日本語はかなり見難いと感じていたところ、以下ツイートを見てRictyフォントなるものを導入してみようと思ったけど結構苦労したのでそのメモ。

https://twitter.com/#!/Stocker_jp/status/158491398436429824

INDEX

  1. 環境
  2. 前置き
  3. Homebrewインストール
  4. FontForgeインストール
    1. FontForgeインストールでエラーその1
    2. FontForgeインストールでエラーその2
    3. FontForgeインストール成功
  5. Rictyの生成
  6. NetBeans IDE の設定

環境

  • Mac OS X Lion 10.7.2
  • Xcode 4.2.1
  • NetBeans IDE 7.1
  • ターミナル用エディタ nano

前置き

まず、公式のプログラミング用フォント Rictyを見てみると、これまではTrueTypeフォントで配布してたがライセンスの問題から万全を期すために最新版は生成スクリプトのみの配布、そして、生成方法としてFontForgeが必要とのこと。
FontForgeというのはフォントの作成や編集ができるアプリケーションらしい、というわけでFontForgeのインストール方法を調べてみることに。

Homebrewインストール

Google先生に尋ねてみて最初にヒットしたサイトがこちら。
Cocoa Emacs on OSX LionでRictyフォントを使ってみた! – 空繰再繰

参考サイトを見てみるとFontForgeをインストールするにはHomebrewというパッケージマネジメントツールが必要とのこと。

早速Homebrewへ行くと中ほどに”Install Homebrew Today!”とあったのでクリック。

Homebrew
Install Homebrew Today!をクリック

githubのHomebrewインストール解説ページに飛ばされたので解説にある通りターミナルコマンドで以下を入力。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

暫し後インストール完了。
/usr/local/ にHomebrew含むファイル一式が追加されており試しにバージョン確認してみるときちんと表示されました。

$ brew -v
0.8.1

FontForgeインストール

FontForgeインストールでエラーその1

参考サイトに習ってターミナルよりFontForgeをインストール

$ sudo brew install fontforge --use-gcc --without-python

すると以下のようなエラーが

sudo: brew: command not found

sudo無しで実行すると通ったので /usr/local/ の権限がrootになっていないのが問題のよう。

$ sudo chown -R root /usr/local

で /usr/local/ の権限をrootに変更。
再度fontforgeインストールしようとすると問題なく brew は実行、しかし別のエラーが。

FontForgeインストールでエラーその2

Error: GCC could not be found

上記エラーが発生。GCCなるものが無いとのこと。
GCCについて調べてみるとフリーのコンパイラでXcodeインストール時に同時にインストールされるらしい。Xcodeはつい最近インストールしたためGCCもインストールされているはず。
念のため /Applications/Install Xcode から再度インストール。

エラー・・・

入っているはずのものが認識されないのでパスが通っていないのかな、ということでMacでパスを通す方法を調べてみることに。
どうやらホームディレクトリ(/users/ユーザ名/)に不可視ファイルで.bash_profileや.bashrcがあるとのこと。(デフォルトはないみたい)
というわけでホームディレクリに移動してファイルがあるか確認。

$ cd /users/ユーザ名
$ ls -a

ファイルが見つからなかったので新規に作って /usr/local へのパスを追加する事に。

$ nano .bashrc

で.bashrcファイルを作成して以下を記述。

export PATH=$PATH:/usr/local

反映させるためにsourceコマンドを。

source ~/.bashrc

パスも通っただろうし再度FontForgeインストール実行。

$ sudo brew install fontforge --use-gcc --without-python

エラー・・・
という訳で再びGoogle先生に聞いてみる事に。

FontForgeインストール成功

いろいろ調べてたどり着いたのがこちら。
Mac デ Homebrew ノススメ | CaCi – Takahiro’s Kitchen
Xcode4.2+GCCは問題あり、という内容でたどり着いたのですが、HomevrewインストールからFontForgeインストールまでこちらのサイトで事足りる、という程参考になりました。

まずはパスの設定から。

Homebrewで入れたパッケージを優先的に使うためには/usr/binより/usr/local/binがPATHの前になければなりません。

というわけで、先ほどの.bashrcファイルを編集します。

$ nano .bashrc

PATH=/usr/local/bin:/usr/local/share:$PATH
export PATH

続いてGitのインストールとHomebrewアップデート

$ sudo install git
$ brew update

そして問題のGCCは使えないので代替の方法を。(詳しくは参考サイトを)

$ sudo brew install --use-clang ffmpeg

ようやくFontForgeインストール!!

$ sudo brew install fontforge --use-clang

暫し後FontForgeインストール成功。
/usr/local/Celler/fontforge/ が追加されています。

Rictyの生成

プログラミング用フォント Rictyの「生成スクリプトの配布」より最新バージョンをダウンロード。(2012/01/31現在 version3.1.3)

Inconsolata 公式サイトより OpenType fileをダウンロード。

M+ と IPA の合成フォントのダウンロードより”Migu 1M”をダウンロード。

それぞれ解凍して1つのフォルダへ。(私はRitcyフォルダに入れました)

ターミナルでフォルダに移動して以下コマンドで生成。

$ ./ricty_generator.sh auto


無事生成されたので、インストール。

NetBeans IDE の設定

“NetBeans > 環境設定 > フォントと色”のフォントでRictyを選択。

NetBeans IDEのフォントをRictyに変更出来ました!!