Xcodeおすすめプラグイン

今のところ使っていて便利なXcodeプラグインをつらつらと記録しておきます。

今後いいものを見つけたら更新していく予定。

Xcodeプラグインのインストール方法

  • 基本的にはgithub等に上がっているソースコードを落としてきてローカルでビルドすれば勝手に入ってくれます。

  • アンインストールするときは基本、   

~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins

に入っている.xcpluginファイルを消せばOK。

現在使っているプラグイン

最後に

とりあえずまだこれくらいしか使っていません。   

いいプラグインがあればぜひ教えて下さい!! 

Macのdotfilesをhomesickで管理する

扱うMacの台数が増えてきたので、そろそろ本気でdotfiles(.zshrcとか.vimrcとか)を管理してみることにしました。

単にGithubでdotfilesを管理するだけでもいいのですが、調べてみるとhomesickというgemを使うのが今はイケてるっぽい。

1. homesickを入れる 

とりあえずhomesickを入れます。

$ gem install homesick

rbenv使っている場合はrbenv rehashを忘れずに。(私はいつも忘れます。はい。)

2. GitHubにdotfilesリポジトリを作る

Web上から空のリポジトリを作っておいてもいいし、brewhub入れてるならhubコマンドで作ってもいいです。

そしたら、ローカルの適当な場所に、dotfilesという名前でディレクトリを作成します。ここでgit initしておきます。

$ mkdir ~/dotfiles && cd ~/dotfiles

$ git init

さらにdotfilesの下にhomeという名前でディレクトリを作成します。そしたらこの中に、管理したいdotfile達をコピーしていきます。

$ mkdir home && cd home

$ cp ~/.zshrc .

$ cp ~/.vimrc .

$ cp ~/.tmux.conf .

管理したいファイルをすべてコピーしたらgit add .してからコミットしましょう。あとは先ほど作ったリポジトリにpushすればOKです。

(Gitの使い方とかGitHubへのpush方法は割愛します。)

3. homesickを使う

では早速homesickを使っていきましょう。

homesick cloneコマンドでdotfilesをhomesickの管理下に置けます。引数に、[GitHubのユーザ名]/[リポジトリ名]を渡すといい感じにcloneしてくれます。

私の場合は以下の様なコマンドとなります。

$ homesick clone braitom/dotfiles

そうすると以下の場所にcloneされます。

~/.homesick/repos/dotfiles

これで準備は整いました。後は実際に使う場所からsimlinkをはります。

私の場合はhomeで使いたいので以下の様な感じとなります。

$ cd ~

$ homesick symlink dotfiles

そうすると自動で~/.homesick/repos/dotfiles/homeフォルダの下にある全部のファイルにsymlinkが貼られます。

なお、ファイルが既にある場合は上書きするかどうか聞いてきます。以前のファイルを念のためバックアップしておきたい方はバックアップしておくことを忘れずに。

念のためls -laできちんとsymlinkが貼られているか確認しておくことをお勧めします。

これ以降は~/.homesick/repos/dotfiles/をGitで管理していくことになるので、この時点で手順2で最初に作成した dotfilesデレクトリは消してしまってOKです。

なお、homesickでcloneするとremote.origin.urlがhttpsになっているのでsshに変更しておきましょう。特にGitHubに2段階認証を設定している場合は面倒なので変更しておくことをお勧めします。

$ git config remote.origin.url git@github.com:braitom/dotfiles.git

GitHubssh設定が分からない方は以下に手順が書いてありますので参考に。

ちなみにhomesick listでcloneしているリポジトリが分かります。

$ homesick list

   dotfiles  git@github.com:braitom/dotfiles.git

あとは、~/.homesick/repos/dotfiles/homeのdotfile達を変更、追加する場合は通常のGitリポジトリとして管理していけばOKです。

ファイルを変更した場合は、

$ homesick commit dotfiles

#vimが開くのでコミットメッセージを入れて保存

$ homesick push dotfiles

これでコミットされてpushされます。

ファイルを追加した場合は、homesick addみたいなコマンドがないようなので、

$ cd ~/.homesick/repos/dotfiles

$ git add .

して、あとは変更時と同じようにコミットしてpushすればOKです。

3. 違うMacでhomesickを使ってdotfilesを同期する

だいたい分かるかと思いますが一応書いておきます。細かいことは上で書いた手順と同じなので割愛します。

  • homesickのインストール
$ gem install homesick
$ homesick clone braitom/dotfiles
  • symlinkをはる
$ homesick symlink dotfiles

4. 運用方法

これであとはどのMacでもdotfilesの追加、更新をhomesick経由で管理していけばOKです。

違うMacで変更した設定を反映させるには以下のコマンドで。

$ homesick pull dotfiles

5. まとめ

このようにお手軽にdotfilesをGithub上で管理できるようになります。

いやーhomesick便利ですねー。

ちなみに私のdotfilesは以下にありますので興味がある方はご覧く下さい。各ファイルともまだまだまだ貧弱なのでアドバイスとかいただけると嬉しいです。

Macにoh-my-zsh導入

今までbashで別にいいやって感じでずっとbashを使い続けていましたが、どうもzshを使っていないと時代遅れ感がだいぶ出てきたのでzshを使うことにしました。

いろいろ設定するのめんどくさいなーとか思っていたらoh-my-zshを使うのがナウな感じなようです。

確かに基本的な設定は全部入っているし、プラグインの仕組みとかあるので便利そう。

Macにはデフォルトでzshが入ってますがbrewで入れたものを使うようにしたいと思います。

とりあえずbrewで最新版入れておきます。

Maczsh は起動時に PATH をリセットしてしまうそうなのでオプションつけてインストールしておきます。

※参考:Macでhomebrewのzshを使う

$ brew install --disable-etcdir zsh

ここでoh-my-zshを入れましょう。

公式の通りcurlを叩きましょう。

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

途中でデフォルトのシェルをzshにするか聞いてくるのでパスワードを入れましょう。

ここでchpassコマンドを叩いてみましょう。

こんな感じで、brewでいれたzshがデフォルトのshellになっているはずです。

##

Shell: /usr/local/bin/zsh

Full Name: braitom

Office Location:

Office Phone:

Home Phone:

あとは自分の好きなテーマを適用したり、プラグインを適用したりして手に馴染むように育てていきましょう。

ちなみに私は今のところ”3den”というテーマがお気に入りです。 こんな感じ。

1__braitom_braitom-retina_____zsh__と_Roon_—_Editor

なお、以下のサイトを参考にさせていただきました。

Mac OS X で zsh + oh-my-zsh の環境を作って一通り設定するまで

良いテーマや、プラグインがあったら随時紹介していきたいと思います。

テーマは以下のページを見ると確認できます。

とりあえず今回は導入までということで。

追記

おすすめのテーマ"3den"としていましたが、なぜかrvmに依存しているようでいちいちrvmが見つからないと言ってくるのでうっとおしいのでやめました。

という訳で現在のおすすめのテーマは"wedisagree"です。gitリポジトリの場合そのステータスをグラフィカルに表示してくれます。あら便利。

詳しくはこちらで解説してくれています。

iOSで実機にアプリを転送してテストする方法

最近周りでiOSアプリの開発に手を出す方々が増えてきたので自分の備忘録も兼ねてまとめておきます。

今更感が若干ありますが。。。

注意点

  • ブラウザで行う作業はすべてSafariで行った方が無難です。Safari以外だと証明書の発行等がうまく動かずコケる可能性があります。

  • この記事は2013年12月現在のものです。今後若干手順が変わる可能性があります。

環境

今回は以下の環境で作業を行っています。

実機転送方法手順

全体としては以下の様な流れになります。

  1. iOS Developer Programへの登録

  2. Apple Developer Centerへログイン

  3. 証明書の作成

  4. CSRファイルの作成

  5. CSRファイルのアップロード

  6. 生成された証明書のダウンロード

  7. テスト端末の登録

  8. テストアプリのApp ID登録

  9. プロビジョニングファイルの作成

  10. Xcodeへの設定

  11. 実機への転送

それでは手順を説明していきます。

1. iOS Developer Programへの登録

ここでは細かい登録方法は省きます。(参考になる情報が山ほどあるので。)

以下の記事が参考になるかと思います。こちらを参考にして登録しましょう。

※個人的には普段使うAppleIDと開発用のAppleIDは分けることをお勧めします。iOS Developer Program登録の際は全て英語で記入しないとうまくいきません。一方で、iTunesでの購入などでは日本語設定であることが必要です。そのためIDを分けて管理した方が良いです。

どうしても登録できずにはまった場合はAppleのサポートセンターに電話しましょう。日本の番号にかければ日本語で対応してくれます。

※ちなみに私は自分の開発用のアカウントを忘れてしまいサポートの方に大変ご迷惑をお掛けしてしまいました。。。そして、サポートセンターの方の親切さに感動しました。

2. Apple Developer Centerへログイン

Apple Developer Centerへログインします。

上のメニューからメンバーセンターをクリックします。

image

3 証明書の作成

メンバーセンターに入るとこのような画面になるので「Certificates,Identifiers & Profiles」をクリックする。

image

次に「iOS Apps」の「Certificates」をクリックする。

image

そうすると、こんな画面になります。何もまだ証明書が無いときはこんな感じで表示されます。既に色々と作成してある場合は一覧がでます。右上の「+」ボタンを押します。

image

必要な証明書の種類を選択してContinueボタンを押します。今回は実機でのデバッグを行いたいので「iOS App Development」を選択します。

image

そうすると、このような画面が出ます。ここの説明にあるようにCSRファイルを作成します。

image

4. CSRファイルの作成

さて、ここからはローカルのMac上で作業を行うことになります。

キーチェーンアクセスを開きます。(アプリケーション>ユーティリティの中にあります。)

メニューから、キーチェーンアクセス>証明書アシスタント>認証局に証明書を要求..と開き、以下のように値を入力、選択します。

imageimage

続けるを押すと、保存場所を聞かれるので、任意の場所を選択します。

その後、以下の画面となりますが、デフォルトのままで、続けるを押します。

image

そうすると以下の画面が表示され、先ほど指定した保存先に、「CertificateSigningRequest.certSigningRequest」というファイルができているはずです。

image

image

5. CSRファイルのアップロード

再びブラウザに戻ります。

CSRファイルをアップロードするように言われるので、先ほど作成して保存した「CertificateSigningRequest.certSigningRequest」を指定します。

image

指定したら、Generateボタンを押します。

image

6. 生成された証明書のダウンロード

こんなかんじで証明書をダウンロードできるようになるので、こいつをダウンロードします。

image

ダウンロードした証明書(.cer)をダブルクリックするとキーチェーンに登録されます。キーチェーンを開いて確認してみて下さい。以下のように登録されているはずです。

image

7. テスト端末の登録

ここまで来たらやっとデバイスの登録です。

Xcodeを開いてOrganizerを開きます。(Xcodeメニューから、Window > Organizer)

画面上の「Identifier」をコピーします。

image

ここからまたブラウザ上での作業になります。Developer Centerで今度はDevicesをクリックします。

image

こんな画面になると思うので右上の「+」ボタンを押します。

image

以下のような画面になるので項目を入力して「Continue」をクリックします。

image

確認画面が出るので問題なかったら「Register」をクリックします。

image

完了画面が出たらOKです。

再度一覧を見ると先ほど登録したデバイスが表示されているかと思います。

image

他にもデバイスを追加したい場合は「+」を押して同じ手順でデバイスを追加していって下さい。

8. テストアプリのApp ID登録

Developer Centerで今度はIdentifiersを選択してApp IDを登録します。例のごとく右上の「+」ボタンをクリックして下さい。

image

以下のような画面が出るので必要な情報を登録します。私は以下のように設定しています。

image

ポイントは、

  • 「App ID Description」は任意の名前でOKです。普通はアプリケーションごとに作ったほうが良いです。私の場合ズボラなのでbraitomDevという名前にして開発用には使い回してます。

  • 「App ID Prefix」は個人の場合はデフォルトのまま変更できません。企業でチーム作っている場合は何か設定できるはず。

  • 「App ID Suffix」は「Explicit App ID」と「Wildcard App ID」の2種類ありますが、他のアプリと被らないようにどちらかだけ入力すればOKです。公開予定の明確なアプリの場合は「Explicit App ID」を使うほうが良いかと思います。テスト用でとりあえずの場合は「Wildcard App ID」で良いかと思います。私の場合は「jp.co.braitom.*」としてしまっています。

  • 「App Services」の部分はPushなど何か使いたいサービスがあればチェックを入れます。

これで「Continue」ボタンを押すと確認画面がでるので、「Submit」ボタンを押せば登録完了です。

image

9. プロビジョニングファイルの作成

次にプロビジョニングファイルを作成します。いろいろ作るものがあってそろそろダルくなってきたと思いますがこれで最後です。頑張りましょう。

例のごとく今度は、「Provisioning Profiles」を選択して、右上の「+」ボタンを押します。

image

開発用に使いたいので、「Decelopment」の「iOS App Development」を選択して「Continue」をクリックします。

image

App IDを選択して、「Continue」をクリックします。

image

作成した証明書にチェックを入れて、「Continue」をクリックします。

image

デバイスにチェックを入れて、「Continue」をクリックします。(複数デバイスの場合は複数チェックできます)

image

Profile Nameは任意でOKです。入力したら「Generate」をクリックします。

image

生成されたプロビジョニングファイルをダウンロードします。

image

ここで、実機をMacに接続しておきましょう。

ダウンロードしたプロビジョニングファイルをダブルクリックするとXcodeのOrganizerに追加されていることが確認できます。StatusがちゃんとValid profileになっていればOKです。

image

10. Xcodeへの設定

さあ、ここまで来ればもう少しです。頑張りましょう!

Xcodeでプロジェクトを開きます。以下の手順でプロビジョニングファイルを設定します。

  1. プロジェクトをクリックします。

  2. Build Settingsを選択します。

  3. Allを選択します。

  4. Code Signingの各項目に先ほど作成した証明書、プロビジョニングファイルを選択します。

image

11. 実機への転送

さあ、いよいよ実機への転送です。実機をMacに接続しましょう。

Xcode上の以下の部分をクリックして、接続している実機を選択しましょう。ここではiPhone5Sを選択しています。

image

image

これでいよいよ実行です、XcodeでRunしましょう。▶ボタンを押せばOKです。

最初はもしかしたらこんな画面がでるかもしれませんがEnableを押して、パスワードを入力すればOKです。

image

こんな感じで無事に実機上で動作させることができました!

image

image

以上、めでたしめでたし。

おまけ: 他のMacでも実機デバッグしたい場合

Apple大好きのエンジニアの皆様はもちろんMac複数台持っていますよね?そんな時にはメインのMacから証明書を書き出してそれを使うということができます。

1. 証明書の書き出し

最初に登録したMacでキーチェーンを開いて自分の証明書を表示します。

先ほど登録した証明書があると思うので、その証明書の三角アイコンをクリックします。

そうすると自分で付けた名前が見つかりますのでこれを右クリックし、「"【秘密鍵名】"を書き出す…」を選択します。

image

そうすると保存場所等を聞かれます。名前、場所はとりあえず適当でOKです。フォーマットは「個人情報交換(.p12)」を選択してくだい。

保存するときにパスワードの設定を求められたり、管理者のパスワードを求められるので設定、入力して下さい。

これで書き出しは完了です。

2. 証明書の登録

ここからは別のMacでの作業となります。

先ほど書きだした証明書を別のMacに送って下さい。そして証明書をダブルクリックします。

そうするとキーチェーンが開いて以下の様な画面が出ます。そのまま追加をクリックします。

image

その後、設定したパスワードの入力を求められるので設定します。

無事に登録されるとキーチェーンの自分の証明書のところにPhone Developerの証明書が追加されているかと思います。

image

3. 実機への転送

Xcodeを開いてOrganizerを開いてみましょう。以下の様に、問題なくプロビジョニングファイルが読み込まれるはずです。問題なくStatuteが緑色になってますね。

image

あとは同じ手順でXcodeから実行すればOKです。

まとめ

手順的には面倒くさいですが、一度やり方が分かってしまえば何てことはないです。ただし、しばらくするとすぐ忘れます。。。

リリース時の手順はやったことが無いので、機会があればまとめようかと思います。

Mac上にMacの仮想マシンをたてる

その名の通りです。

何がしたいんだって話はありますが、ちょっとした検証したい時にいつも使っているMacの環境を汚したくないときなどに非常に便利です。

自分の場合は、Boxenの検証環境として使うのが主な目的です。

基本的には以下を参考にすればOKです。 非常に助かりました。

2つ目の記事にもかいてあるように、SOFTWARE LICENSE AGREEMENT FOR OS X MAVERICKS を見ると、

(iii) to install, use and run up to two (2) additional copies or instances of the Apple Software within virtual operating system environments on each Mac Computer you own or control that is already running the Apple Software, for purposes of: (a) software development; (b) testing during software development; (c) using OS X Server; or (d) personal, non-commercial use

と書いてあるので、非商用目的での開発検証用ならば、1つのMac上に2つ仮想マシンを動かしてもOKみたい。なのでライセンス違反にはならないはず。

gemをたたく必要があるのですがMacならもともとRubyが入っているので大丈夫でしょう。

ちなみにこれらの記事はVirtualBox上で動かしていますが、VMWare Fusion 6でも作成したdmgを使えば仮想マシンとして動作させることができました。

こんな感じ。便利ですね!

スクリーンショット 2013-12-09 0,16,35

##追記 ちなみにホストOSはMavericks(OSX 10.9)で試しています。

SqlAlchemy-migrateを使ってみる

SqlAlchemy-migrateを使ってみる

概要

RailsActiveRecordのMigrationに影響を受けて、SQLAlchemy を使ったプロジェクトのスキーマ管理をできるようにしたもの。

現時点での最新Verは0.8.2みたいです。

Package Index > sqlalchemy-migrate > 0.8.2

使用方法

ライブラリのインストール

$ pip install sqlalchemy
$ pip install sqlalchemy-migrate

これにより"migrate"コマンドが使えるようになる。

$ migrate --help

プロジェクトの作成

※DBは既に存在していることを前提とする。今回はチュートリアルにのっとりSQLiteを使用します。

ちなみに初期Tableはこんな感じで作ってある。

# create_table.py

from sqlalchemy import *

engine = create_engine('sqlite:///test.db', echo=True)

meta = MetaData()

city = Table('city', meta,
             Column('city_id', INTEGER, primary_key=True),
             Column('city_name', String(32)))

meta.create_all(engine)

まずはプロジェクトを作る。

$ migrate create test_migrate "Test Project"
$ tree
.
└── test_migrate
├── README
├── __init__.py
├── __init__.pyc
├── manage.py
├── migrate.cfg
└── versions
    ├── __init__.py
    └── __init__.pyc

データベースの初期化

$ cd test_migrate/
$ python manage.py version_control sqlite:///test.db .

毎回、データベース情報引数で渡すのはめんどいので登録しておく。

$ migrate manage manage.py --repository=. --url=sqlite:///test.db

DB見るとマイグレーション用のTableができてる。

$ sqlite3 test.db
$ .explain ON
$ .tables
city             migrate_version


sqlite> select * from city;
city  city_name
----  -------------
1     Los Angels
2     San Francisco

sqlite> select * from migrate_version;
repo  repository_pa  vers
----  -------------  ----
Test Project  .       0

現在のスキーマバージョン。

$ python manage.py db_version
  0

登録されているスキーマバージョンの確認。

$ python manage.py version
  0

スキーマ変更用のスクリプトの作成

まずは、スキーマ変更用のスクリプトを登録する。

$ python manage.py script "Add country table"
$ cd versions/
  001_Add_country_table.py  __init__.py  __init__.pyc

001_Add_country_table.pyを書き換える。

# 001_Add_country_table.py

from sqlalchemy import *
from migrate import *

meta = MetaData()

country = Table('country', meta,
                Column('id', Integer, primary_key=True),
                Column('country_name', String(32))
                )


def upgrade(migrate_engine):
    meta.bind = migrate_engine
    country.create()


def downgrade(migrate_engine):
    meta.bind = migrate_engine
    country.drop()

ちゃんと動くかテストする。

$ python manage.py test
  Upgrading...
  done
  Downgrading...
  done
  Success

現在のスキーマバージョン、登録されているスキーマバージョンを確認してみる。 versionが1上がってますね。

$ python manage.py db_version
  0
$ python manage.py version
  1

スキーマを上げる

$ python manage.py upgrade
  0 -> 1...
  done

バージョンが上がっているか確認。

$ python manage.py db_version
  1

sqliteの中身みてみる。countryが追加されてる。

 sqlite> .tables
    city             country          migrate_version
    sqlite> .schema country
    CREATE TABLE country (
        id INTEGER NOT NULL,
        country_name VARCHAR(32),
        PRIMARY KEY (id)
    );

ダウングレードしてみる

できてますね。(countoryが消えてる。)

$ python manage.py downgrade 0
  1 -> 0...
  done

sqlite> .tables
city             migrate_version

元に戻してみてもOK。

$ python manage.py upgrade
  0 -> 1...
  done

sqlite> .tables
city             country          migrate_version

カラムの追加

countryテーブルにpopulationカラムを追加してみる。 スクリプトが追加されてますね。

$ python manage.py script "Add population column in country table"
$ ls versions/
001_Add_country_table.py            __init__.py
001_Add_country_table.pyc           __init__.pyc
002_Add_population_column_in_country_table.py

002_Add_population_column_in_country_table.pyを書き換えてみる。

# 002_Add_population_column_in_country_table.py

from sqlalchemy import *
from migrate import *


def upgrade(migrate_engine):
    meta = MetaData(bind=migrate_engine)
    country = Table('country', meta, autoload=True)
    population_col = Column('population', Integer)
    population_col.create(country)


def downgrade(migrate_engine):
    meta = MetaData(bind=migrate_engine)
    country = Table('country', meta, autoload=True)
    country.c.population.drop()

テストしてみる。いけそう。

$ python manage.py test
  Upgrading...
  done
  Downgrading...
  done
  Success

現在のスキーマバージョン、登録されているスキーマバージョンを確認してみる。

$ python manage.py db_version
  1
$ python manage.py version
  2

アップデートしてみる。populationカラムが追加されてますね。

$ python manage.py upgrade
1 -> 2...
done

sqlite> .schema country
CREATE TABLE country (
    id INTEGER NOT NULL,
    country_name VARCHAR(32), population INTEGER,
    PRIMARY KEY (id)
);

現在のスキーマバージョン、登録されているスキーマバージョンを確認してみる。

$ python manage.py db_version
  2
$ python manage.py version
  2

複数バージョン間の移動

もちろんver2からver0、ver0からver2とかもできる。

$ python manage.py downgrade 0
2 -> 1...
done
1 -> 0...
done

$ python manage.py upgrade 2
0 -> 1...
done
1 -> 2...
done

まとめ

SqlAlchemy-migrate非常に便利ですね。Flaskとかとも組み合わせて使ってみたい。

Cent OSの初期設定

sudoを使えるように

まずrootになる

[braitom@localhost ~]$ su - root
Password: 
[root@localhost ~]# 

visudoで以下を編集。

[root@localhost ~]# visudo

## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
braitom ALL=(ALL)       ALL  ←ここを追加

rootを抜けてsudoできることを確認。

[root@localhost ~]# exit
logout
[braitom@localhost ~]$ sudo ls

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for braitom: 
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[braitom@localhost ~]$ 

※参考さくらVPS+CentOS:自分をsudoユーザに追加してみた

SSH設定

opensshインストール

[braitom@localhost ~]$ sudo yum install openssh

sshd_configを編集。

[braitom@localhost ~]$ sudo vi /etc/ssh/sshd_config 

とりあえず必要最低限

#   $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
#KerberosUseKuserok yes

# GSSAPI options
#GSSAPIAuthentication no
GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing, 
# and session processing. If this is enabled, PAM authentication will 
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
UsePAM yes

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
#ChrootDirectory none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem   sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#   X11Forwarding no
#   AllowTcpForwarding no
#   ForceCommand cvs server

AllowsUsers braitom

sshdをリスタート

[braitom@localhost ~]$ sudo /etc/rc.d/init.d/sshd restart

※参考CentOS 6.3でSSH

外からPingとか通るようにする。

fusionだとこれ。 CentOS on VMware Fusionネットワークアダプタの構成メモ

VirtualBoxならこの辺が参考に。 ネットワークカードに複数のIPアドレスを付与する Virtualbox上のUbuntuにSSHで接続するための設定手順

これで外からもSSHでつなげるはず。