Xcodeおすすめプラグイン
今のところ使っていて便利なXcodeプラグインをつらつらと記録しておきます。
今後いいものを見つけたら更新していく予定。
Xcodeプラグインのインストール方法
~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
に入っている.xcplugin
ファイルを消せばOK。
現在使っているプラグイン
SCXcodeMiniMap
使い方 : Sublime Textと同じですMap上をクリックすればその辺りに移動できます。Ctrl + Shift + Mで表示/非表示の切り替え可能
Alcatraz
FuzzyAutocompletePlugin
XAlign
内容: コードを綺麗に整列してくれる。フォーマットとはまた違う。見た目をよくしてくれるという感じ。詳細はGithubのReadmeを見れば分かる。
使い方: 整列したい範囲を選択して⇧+⌘+Xを押すと整列してくれる。
cocoapods-xcode-plugin
- リポジトリ:https://github.com/kattrali/cocoapods-xcode-plugin
- 内容: podfileをXcode上から作成、編集できたり、インストールできたりする。
- 使い方: Xcodeメニューで、Product→CocoaPodsで色々できます。
- 注意点:このプラグインではデフォルトで、
/usr/bin/pod
、/usr/bin/gem
を見に行くようになっています。rbenv等を使っている方は、コード上で*POD_EXECUTABLE
と、*GEM_EXECUTABLE
を自分で使っているgemとpodのパスに書き換えてビルドして下さい。
最後に
とりあえずまだこれくらいしか使っていません。
いいプラグインがあればぜひ教えて下さい!!
Macのdotfilesをhomesickで管理する
扱うMacの台数が増えてきたので、そろそろ本気でdotfiles(.zshrcとか.vimrcとか)を管理してみることにしました。
単にGithubでdotfilesを管理するだけでもいいのですが、調べてみるとhomesickというgemを使うのが今はイケてるっぽい。
1. homesickを入れる
とりあえずhomesickを入れます。
$ gem install homesick
rbenv使っている場合はrbenv rehash
を忘れずに。(私はいつも忘れます。はい。)
2. GitHubにdotfilesリポジトリを作る
Web上から空のリポジトリを作っておいてもいいし、brewでhub入れてるなら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
GitHubのssh設定が分からない方は以下に手順が書いてありますので参考に。
ちなみに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
- dotfilesリポジトリのclone
$ 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で最新版入れておきます。
Mac の zsh は起動時に PATH をリセットしてしまうそうなのでオプションつけてインストールしておきます。
$ 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”というテーマがお気に入りです。 こんな感じ。
なお、以下のサイトを参考にさせていただきました。
Mac OS X で zsh + oh-my-zsh の環境を作って一通り設定するまで
良いテーマや、プラグインがあったら随時紹介していきたいと思います。
テーマは以下のページを見ると確認できます。
とりあえず今回は導入までということで。
追記
おすすめのテーマ"3den"としていましたが、なぜかrvmに依存しているようでいちいちrvmが見つからないと言ってくるのでうっとおしいのでやめました。
という訳で現在のおすすめのテーマは"wedisagree"です。gitリポジトリの場合そのステータスをグラフィカルに表示してくれます。あら便利。
詳しくはこちらで解説してくれています。
iOSで実機にアプリを転送してテストする方法
最近周りでiOSアプリの開発に手を出す方々が増えてきたので自分の備忘録も兼ねてまとめておきます。
今更感が若干ありますが。。。
注意点
ブラウザで行う作業はすべてSafariで行った方が無難です。Safari以外だと証明書の発行等がうまく動かずコケる可能性があります。
この記事は2013年12月現在のものです。今後若干手順が変わる可能性があります。
環境
今回は以下の環境で作業を行っています。
実機転送方法手順
全体としては以下の様な流れになります。
iOS Developer Programへの登録
Apple Developer Centerへログイン
証明書の作成
CSRファイルの作成
CSRファイルのアップロード
生成された証明書のダウンロード
テスト端末の登録
テストアプリのApp ID登録
プロビジョニングファイルの作成
Xcodeへの設定
実機への転送
それでは手順を説明していきます。
1. iOS Developer Programへの登録
ここでは細かい登録方法は省きます。(参考になる情報が山ほどあるので。)
以下の記事が参考になるかと思います。こちらを参考にして登録しましょう。
※個人的には普段使うAppleIDと開発用のAppleIDは分けることをお勧めします。iOS Developer Program登録の際は全て英語で記入しないとうまくいきません。一方で、iTunesでの購入などでは日本語設定であることが必要です。そのためIDを分けて管理した方が良いです。
どうしても登録できずにはまった場合はAppleのサポートセンターに電話しましょう。日本の番号にかければ日本語で対応してくれます。
※ちなみに私は自分の開発用のアカウントを忘れてしまいサポートの方に大変ご迷惑をお掛けしてしまいました。。。そして、サポートセンターの方の親切さに感動しました。
2. Apple Developer Centerへログイン
Apple Developer Centerへログインします。
上のメニューからメンバーセンターをクリックします。
3 証明書の作成
メンバーセンターに入るとこのような画面になるので「Certificates,Identifiers & Profiles」をクリックする。
次に「iOS Apps」の「Certificates」をクリックする。
そうすると、こんな画面になります。何もまだ証明書が無いときはこんな感じで表示されます。既に色々と作成してある場合は一覧がでます。右上の「+」ボタンを押します。
必要な証明書の種類を選択してContinueボタンを押します。今回は実機でのデバッグを行いたいので「iOS App Development」を選択します。
そうすると、このような画面が出ます。ここの説明にあるようにCSRファイルを作成します。
4. CSRファイルの作成
さて、ここからはローカルのMac上で作業を行うことになります。
キーチェーンアクセスを開きます。(アプリケーション>ユーティリティの中にあります。)
メニューから、キーチェーンアクセス>証明書アシスタント>認証局に証明書を要求..と開き、以下のように値を入力、選択します。
続けるを押すと、保存場所を聞かれるので、任意の場所を選択します。
その後、以下の画面となりますが、デフォルトのままで、続けるを押します。
そうすると以下の画面が表示され、先ほど指定した保存先に、「CertificateSigningRequest.certSigningRequest」というファイルができているはずです。
5. CSRファイルのアップロード
再びブラウザに戻ります。
CSRファイルをアップロードするように言われるので、先ほど作成して保存した「CertificateSigningRequest.certSigningRequest」を指定します。
指定したら、Generateボタンを押します。
6. 生成された証明書のダウンロード
こんなかんじで証明書をダウンロードできるようになるので、こいつをダウンロードします。
ダウンロードした証明書(.cer)をダブルクリックするとキーチェーンに登録されます。キーチェーンを開いて確認してみて下さい。以下のように登録されているはずです。
7. テスト端末の登録
ここまで来たらやっとデバイスの登録です。
Xcodeを開いてOrganizerを開きます。(Xcodeメニューから、Window > Organizer)
画面上の「Identifier」をコピーします。
ここからまたブラウザ上での作業になります。Developer Centerで今度はDevicesをクリックします。
こんな画面になると思うので右上の「+」ボタンを押します。
以下のような画面になるので項目を入力して「Continue」をクリックします。
確認画面が出るので問題なかったら「Register」をクリックします。
完了画面が出たらOKです。
再度一覧を見ると先ほど登録したデバイスが表示されているかと思います。
他にもデバイスを追加したい場合は「+」を押して同じ手順でデバイスを追加していって下さい。
8. テストアプリのApp ID登録
Developer Centerで今度はIdentifiersを選択してApp IDを登録します。例のごとく右上の「+」ボタンをクリックして下さい。
以下のような画面が出るので必要な情報を登録します。私は以下のように設定しています。
ポイントは、
「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」ボタンを押せば登録完了です。
9. プロビジョニングファイルの作成
次にプロビジョニングファイルを作成します。いろいろ作るものがあってそろそろダルくなってきたと思いますがこれで最後です。頑張りましょう。
例のごとく今度は、「Provisioning Profiles」を選択して、右上の「+」ボタンを押します。
開発用に使いたいので、「Decelopment」の「iOS App Development」を選択して「Continue」をクリックします。
App IDを選択して、「Continue」をクリックします。
作成した証明書にチェックを入れて、「Continue」をクリックします。
デバイスにチェックを入れて、「Continue」をクリックします。(複数デバイスの場合は複数チェックできます)
Profile Nameは任意でOKです。入力したら「Generate」をクリックします。
生成されたプロビジョニングファイルをダウンロードします。
ここで、実機をMacに接続しておきましょう。
ダウンロードしたプロビジョニングファイルをダブルクリックするとXcodeのOrganizerに追加されていることが確認できます。StatusがちゃんとValid profileになっていればOKです。
10. Xcodeへの設定
さあ、ここまで来ればもう少しです。頑張りましょう!
Xcodeでプロジェクトを開きます。以下の手順でプロビジョニングファイルを設定します。
プロジェクトをクリックします。
Build Settingsを選択します。
Allを選択します。
Code Signingの各項目に先ほど作成した証明書、プロビジョニングファイルを選択します。
11. 実機への転送
さあ、いよいよ実機への転送です。実機をMacに接続しましょう。
Xcode上の以下の部分をクリックして、接続している実機を選択しましょう。ここではiPhone5Sを選択しています。
これでいよいよ実行です、XcodeでRunしましょう。▶ボタンを押せばOKです。
最初はもしかしたらこんな画面がでるかもしれませんがEnableを押して、パスワードを入力すればOKです。
こんな感じで無事に実機上で動作させることができました!
以上、めでたしめでたし。
おまけ: 他のMacでも実機デバッグしたい場合
Apple大好きのエンジニアの皆様はもちろんMacを複数台持っていますよね?そんな時にはメインのMacから証明書を書き出してそれを使うということができます。
1. 証明書の書き出し
最初に登録したMacでキーチェーンを開いて自分の証明書を表示します。
先ほど登録した証明書があると思うので、その証明書の三角アイコンをクリックします。
そうすると自分で付けた名前が見つかりますのでこれを右クリックし、「"【秘密鍵名】"を書き出す…」を選択します。
そうすると保存場所等を聞かれます。名前、場所はとりあえず適当でOKです。フォーマットは「個人情報交換(.p12)」を選択してくだい。
保存するときにパスワードの設定を求められたり、管理者のパスワードを求められるので設定、入力して下さい。
これで書き出しは完了です。
2. 証明書の登録
ここからは別のMacでの作業となります。
先ほど書きだした証明書を別のMacに送って下さい。そして証明書をダブルクリックします。
そうするとキーチェーンが開いて以下の様な画面が出ます。そのまま追加をクリックします。
その後、設定したパスワードの入力を求められるので設定します。
無事に登録されるとキーチェーンの自分の証明書のところにPhone Developerの証明書が追加されているかと思います。
3. 実機への転送
Xcodeを開いてOrganizerを開いてみましょう。以下の様に、問題なくプロビジョニングファイルが読み込まれるはずです。問題なくStatuteが緑色になってますね。
あとは同じ手順で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を使えば仮想マシンとして動作させることができました。
こんな感じ。便利ですね!
##追記 ちなみにホストOSはMavericks(OSX 10.9)で試しています。
SqlAlchemy-migrateを使ってみる
SqlAlchemy-migrateを使ってみる
概要
RailsのActiveRecordの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
外からPingとか通るようにする。
fusionだとこれ。 CentOS on VMware Fusionネットワークアダプタの構成メモ
VirtualBoxならこの辺が参考に。 ネットワークカードに複数のIPアドレスを付与する Virtualbox上のUbuntuにSSHで接続するための設定手順
これで外からもSSHでつなげるはず。