Single Sign-On; SSO
一回承認を通れば、他のコンピュータのリソースも権限に応じて利用できる仕組み

ここでは研究室内ADドメインに繋がったwindowsPCにログインすれば、ジョブ実行マシンへのsshログイン、
マシン同士のssh/rshログイン、並びに研究室内webサーバサイトへの自動認証らができることを想定する。
windowsPC/計算マシン/webサイトらは既にドメインに参加済みとする。
*据え置き型のPCではなく、ノートPCでドメインに参加してないPCもあるだろうけど...
2015y03m19d_234350871.png
samba42/SSO/Kerberos_ssh
*CentOS 7でkerberos対応なrsh/rloginって提供されていないっぽい
samba42/SSO/Kerberos_httpd

1./etc/krb5.keytabの準備

既にLinuxマシンはドメインに参加していて、sssdによる認証のために /etc/krb5.<ホスト名>.keytabファイルがドメインコントローラから配布されているとする。*Linuxマシンのドメイン参加方法はsamba42/lin参加を参照のこと
なので、オリジナルなkeytabファイルはドメインコントローラにもあり、

[root@c ~]# klist -ke /etc/krb5.n1.keytab
Keytab name: FILE:/etc/krb5.n1.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 n1$@SYBYL.LOCAL (des-cbc-crc)
   1 n1$@SYBYL.LOCAL (des-cbc-md5)
   1 n1$@SYBYL.LOCAL (aes128-cts-hmac-sha1-96)
   1 n1$@SYBYL.LOCAL (aes256-cts-hmac-sha1-96)
   1 n1$@SYBYL.LOCAL (arcfour-hmac)
[root@c ~]#

として、存在している。なければ再作成する。
この/etc/krb5.<ホスト名>.keytabファイルに、サービス記述子hostとなるサービスプリンシパルを追記する。

[root@c ~]# /opt/samba/bin/samba-tool domain exportkeytab /etc/krb5.n1.keytab --principal=host/n1.sybyl.local
[root@c ~]#
[root@c ~]# klist -ke /etc/krb5.n1.keytab
Keytab name: FILE:/etc/krb5.n1.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 n1$@SYBYL.LOCAL (des-cbc-crc)
   1 n1$@SYBYL.LOCAL (des-cbc-md5)
   1 n1$@SYBYL.LOCAL (aes128-cts-hmac-sha1-96)
   1 n1$@SYBYL.LOCAL (aes256-cts-hmac-sha1-96)
   1 n1$@SYBYL.LOCAL (arcfour-hmac)
   1 host/n1.sybyl.local@SYBYL.LOCAL (des-cbc-crc)
   1 host/n1.sybyl.local@SYBYL.LOCAL (des-cbc-md5)
   1 host/n1.sybyl.local@SYBYL.LOCAL (arcfour-hmac)
[root@c ~]#

と追記された内容を確認して、この/etc/krb5.n1.keytabファイルを n1 サイトに再配信して上書きする。

[root@c ~]# scp /etc/krb5.n1.keytab root@n1:/etc

n1サイト側では、この /etc/krb5.n1.keytab/etc/krb5.keytabにリンクを張る。
*もしくはドメインコントローラからのコピーの際に/etc/krb5.keytabとしてもいいかも

[root@n1 ~]# ln -s /etc/krb5.n1.keytab /etc/krb5.keytab
[root@n1 ~]# ls -l /etc/krb5.keytab
lrwxrwxrwx 1 root root 19  3月 21 15:48 /etc/krb5.keytab -> /etc/krb5.n1.keytab
[root@n1 ~]#

2./etc/krb5.confの調整

kerberosサーバはドメインコントローラですよと定義します

[root@n1 ~]# vi /etc/krb5.conf
[libdefaults]
  default_realm = SYBYL.LOCAL
  dns_lookup_realm = false
  dns_lookup_kdc = true
[realms]
 SYBYL.LOCAL = {
  kdc = c.sybyl.local
  admin_server = c.sybyl.local
 }
 
[domain_realm]
  .sybyl.local = SYBYL.LOCAL
   sybyl.local = SYBYL.LOCAL
[root@n1 ~]#

3.sshdの設定を調整

/etc/ssh/sshd_configGSSAPIAuthenticationGSSAPICleanupCredentials が有効であることを確認
*OSインストール直後ならこの値は2つとも有効と定義されている

[root@n1 ~]# egrep "^GSSAPIAuthentication|^GSSAPICleanupCredentials" /etc/ssh/sshd_config
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
[root@n1 ~]#

4.GSSAPI対応ターミナルソフトの入手とインストール

windows端末にGSSAPI対応ターミナルソフトをインストールします。ここでは PuTTY を使用します。

本家様 http://www.chiark.greenend.org.uk/~sgtatham/putty/
ダウンロードページ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html から
putty.exeをクリックしてダウンロード。
2014y06m17d_230432788.png
これを例えば C:\Program Files(x86)\PuTTY\ に置く
2014y06m17d_231231117.png
*putty.exeのショートカットを作成して、C:\Users\Default\Desktopに配置すれば、初回ログイン時にディスクトップにショートカットが配置される

5.PuTTY設定

windowsマシンにドメインログインして、PuTTYを起動する
左側のツリーで「Session」を開き、パスワードなしでアクセスしたいLinuxサーバを指定します。
2015y03m21d_225810642.png
次に、「Connection」->「Data」にて、「Use system username(illya)」を選択します。これでログインユーザでのアクセスとなる。
2015y03m21d_225844378.png
最後に「Connection」->「SSH」->「Auth」->「GSSAPI」にて「Allow GSSAPI credential delegation」を有効にする。
2015y03m21d_225909866.png

このように定めた設定を保存します。
左側のツリーの「Session」から「Saved Sessions」として「gssapi_N1」と定義して「Save」ボタンをクリックします。
2015y03m21d_230019569.png

6.接続テスト

接続設定名「gssapi_N1」を引き出して、アクセスを試みます。
左側のツリーの「Session」から保存した設定「gssapi_N1」を選び「Load」ボタンをクリックします。
2015y03m21d_230419946.png
そして、PuTTY画面下部の「Open」ボタンをクリックします。
2014y06m17d_234847788.png
初回にマシンキーの登録が求められるが「はい」を押します。
すると、パスワードなしでLinuxメンバサーバにログインできる。
2015y03m21d_231007378.png

7.ショートカットの作成

上記のままだと、機動の度に接続設定名を再読み込む必要があり面倒です。それを簡略化する方法としてショートカットを作成します。
C:\Program Files(x86)\PuTTY\ に配置したPuTTY.exeのショートカットをディスクトップらに作ります。
2014y06m18d_002623359.png

作ったショートカットの「プロパティ」を開いて、「リンク先」入力欄のPuTTY.exeに保存したセッション名を引数として加えます。

"C:\Program Files (x86)\PuTTY\putty.exe"  -load gssapi_N1

「作業フォルダ」入力欄は、そのままでもいいが、ホームディレクトリ(%HOMEPATH%)でも宜しいかと。
2015y03m29d_114800463.png
これで、このショートカットをダブルクリックすれば、パスワードの入力なしに、Linuxメンバサーバにアクセスできます。
*なのでこのショートカットの名称を N1 とかマシン名にすればいいのかな

8.メモ

留意 設定が完了したら[save]する事。しないとその場限りです。

最新の60件
2026-09-05 2026-08-31 2026-08-27 2026-08-24 2026-08-20 2026-08-18 2026-08-17 2026-08-16 2026-08-15 2026-08-13 2026-08-12 2026-08-11 2026-08-09 2026-07-30 2026-07-25 2026-07-24 2026-07-20 2026-07-18 2026-07-17 2026-07-16 2026-07-08 2026-07-07 2026-07-06 2026-07-04 2026-07-02 2026-06-27 2026-06-24 2026-06-21 2026-06-17 2026-06-14 2026-06-13 2026-06-09 2026-06-08 2026-06-05 2026-06-04 2026-06-03

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-30 (月) 20:59:31