part3です。
前回は、yum環境を整えるところまでやりました。
Windows AzureのOpenLogic CentOS 6.3 で GNOME (X Window)を使うまでセットアップをしてみる part1
Windows AzureのOpenLogic CentOS 6.3 で GNOME (X Window)を使うまでセットアップをしてみる part2
目次はこちら。
公開鍵暗号に認証方法を切り替えます。
- Open Logic CentOS 6.3のインスタンス作成と接続
- yum更新とRemi Repositoruの導入
- ssh 公開鍵暗号での接続に切り替え
- zshのインストール
- gccなどDevelopment Toolsをインストール
- GNOMEの導入
- VNCの導入
ssh 公開鍵暗号での接続に切り替え
Azureとは言っても、中身はCent OSな訳で至って普通です。
また、ssh接続する以上sshdが入っていますので、パッケージのイオンストールはいりません。
簡単ですね!
Azureインスタンスの簡易作成では、公開鍵暗号を選べませんでした (パスワード入力欄しかない)
また、ギャラリーから作成しても事前に公開鍵を準備するのは、初めて使う人には尻込みするかもしれません。
今回は、Cent OSないで公開鍵を作成して接続するところまでやります。
設定ファイルの編集
前回同様、azureuser でssh接続します。
まず、sshdの設定を変更します。
これでssh 接続するときにサーバーが許可するもの、禁止するものが設定されます。
sshd_configを開きます。
vim /etc/ssh/sshd_config
編集にはsudoが必要ですのでご注意ください。
sudo vim /etc/ssh/sshd_config
以下の設定にします。
- IPv4での接続を許可
- rootでのログインは禁止
♯--------------------------------以下を記入
# 1. IPv4の許可
#ListenAddress 0.0.0.0
ListenAddress 0.0.0.0
# 2. rootログイン禁止
#PermitRootLogin yes
PermitRootLogin no
# Allow Groupなどはお好きにどうぞ
♯--------------------------------以上まで
iptableの編集
いわゆるfirewallです。
既にsshのTCP 22は初期で解放設定済みなので不要です。
公開鍵フォルダの作成
公開鍵フォルダを作成します。
root権限を与えます。
su - azureuser
~/.ssh フォルダ生成
azureuserのHOMEディレクトリに.sshフォルダを作成し、ここに公開鍵を置くこととします。
ここは、この後のsshキー作成に指定します。
もしこだわりがある場合は、お好きにどうぞ。
mkdir ~/.ssh
権限も変えておきましょう。
chmod 700 ~/.ssh
これでこのような権限のフォルダができたかと思います。
[office src="
https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%211431&authkey=APExFkkZDxG5WhY" width="313" height="32"]
公開鍵の生成
公開鍵、秘密鍵を纏めて作ります。
まずは、鍵生成をします。 ""は鍵の説明です。
ssh-keygen -t rsa -C "SSH Connection User : azureuser"
ダイアログが出るので順に入力します。
初めに鍵生成場所です。
先ほど作成した~/.sshは、このデフォルトパスです。
特に拘りなればそのままでも。
こだわりがある場合は、先ほどのsshキー用フォルダで作成したであろうパスを入れてください。
Generating public/private rsa key pair.
Enter file in which to save the key (/home/users/sshuser/.ssh/id_rsa): [Enter]
Created directory '/home/users/sshuser/.ssh'.
続いて鍵を読み取る際のパスワードです。
これまでのOSログインなどとは別物扱いです。設定してもしなくてもお好きにどうぞ。
Enter passphrase (empty for no passphrase): パスフレーズ
Enter same passphrase again: パスフレーズ再入力
デフォルトのままEnterしていくと、秘密鍵、公開鍵が以下のパスに生成されます。
~/.ssh/id_rsa
#秘密鍵はこの名前で。
id_rsa
#公開鍵はこの名前です。
~/.ssh/id_rsa.pub
処理後は、rootを抜けます。
exit
この時、WinSCPやteratermの scp転送でid_rsaを手元に持ってきてください。
[office src="
https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%211429&authkey=AFkBYD1ndUXSTLo" width="319" height="245"]
ファイルが1つなので、WinSCPよりTeratermの方が楽かもしれませんね。
[office src="
https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%211430&authkey=AC6RPzEjLhey9Lc" width="319" height="210"]
公開鍵を認証キーとしてCentOS内部に配置
作成した鍵の内、サーバーで利用するのが公開鍵です。
接続するユーザーのPCで使うのが秘密鍵です。
この秘密鍵と公開鍵をセットで使うことでハッシュ関数が一致して認証されるとなります。
サーバー側では、認証に使う公開鍵を~/.ssh (ssjキー作成時に指定したパス) となります。
先ほどの鍵作成で出来たid_rsa.pubを、authorized_keysにリネームします。
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
権限も変えて完了です。
chmod 600 ~/.ssh/authorized_keys
sshdの設定反映
ここまでの設定を反映させるため、sshdデーモンを再起動します。
sudo /etc/init.d/sshd restart
パスワード認証に無効化前の接続テスト
必ず現在のTeraterm接続は残したまま、別のTeratermで秘密鍵を指定して接続できるか試して下さい。
接続が確認できたら、パスワード認証を無効にします。
[office src="
https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%211432&authkey=ADeIMh--d4bkD1M" width="319" height="311"]
※この時点では、公開鍵認証もパスワード認証も有効なので、公開鍵の設定が誤っていてもログインできます。
安心してやり直してください。
パスワード認証に無効化
秘密鍵で接続が確認できましたね?
では、パスワード認証を無効化します。
sshd_configを開きます。
vim /etc/ssh/sshd_config
編集にはsudoが必要ですのでご注意ください。
sudo vim /etc/ssh/sshd_config
以下の設定にします。
♯--------------------------------以下を記入
# パスワードログイン 禁止
#PasswordAuthentication yes
PasswordAuthentication no
♯--------------------------------以上まで
sshdの設定反映
パスワード認証無効設定を反映させるため、sshdデーモンを再起動します。
sudo /etc/init.d/sshd restart
パスワード認証に無効化後の接続テスト
必ず現在のTeraterm接続は残したまま、別のTeratermで秘密鍵を指定して接続できるか試して下さい。
接続が確認できたら、安心です。
[office src="
https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%211432&authkey=ADeIMh--d4bkD1M" width="319" height="311"]
まとめ
以上で公開鍵認証への切り替えは完了です。
簡単ですね!Gitより簡単!