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
公開鍵の生成
公開鍵、秘密鍵をまとめて作ります。まずは、鍵生成をします。""は鍵の説明です。
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を手元に持ってきてください。ファイルが1つなのでTeratermで十分です。
公開鍵を認証キーとして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で秘密鍵を指定して接続できるか試して下さい。 接続が確認できたら、パスワード認証を無効にします。
※ この時点では、公開鍵認証とパスワード認証の両方有効なので、公開鍵の設定が誤っていてもログインできます。
安心してやり直してください。
パスワード認証に無効化
秘密鍵で接続が確認できましたね? では、パスワード認証を無効化します。
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で秘密鍵を指定して接続できるか試して下さい。 接続が確認できたら、安心です。
まとめ
以上で公開鍵認証への切り替えは完了です。