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

samba/SSOでは ドメインに参加したwindowsPC からLinuxマシンへのSSOを紹介した。
ここでは LinuxマシンからLinuxマシンへのSSOを紹介する。

2015y12m12d_205116162.png

clientがn1にssh接続する際、SSOでパスワードなしでログインできるようにします。
両機は同じドメインに参加して、時間同期がされているとします。
加え、共にsssdによりsambaに認証を依頼しているとします。
*まだ未参加ならsamba/Linux参加にて参加処理を行う

方法

パスワードなしのSSOでLinuxマシンからLinuxマシンへの接続は2つ方法がある

  • GSSAPIStrictAcceptorCheckを無効にする
  • HOSTサービスプリンシパルを用意する

GSSAPIStrictAcceptorCheckを無効にしてSSOなssh接続

sshで接続される側の /etc/ssh/sshd_config を調整して、sshdを再起動する

[root@n1 ~]# vi /etc/ssh/sshd_config
(略)
  #GSSAPIStrictAcceptorCheck yes
+ GSSAPIStrictAcceptorCheck no
(略)
[root@n1 ~]# systemctl restart sshd

加えて/etc/krb5.confも調整する

[root@n1 ~]# vi /etc/krb5.conf
[libdefaults]
   default_realm = SYBYL.LOCAL
[root@n1 ~]#

*/etc/krb5.keytabが存在する事
こうして、clientからsshで接続するとパスワードなしでログインできる

[illya@client ~]$ ssh n1
Last login: Sat Dec 12 20:21:07 2015 from client.sybyl.local
[illya@n1 ~]$

HOSTサービスプリンシパルを用意してSSOなssh接続

sshd_configの GSSAPIStrictAcceptorCheck を既定の有効なままでSSOなssh接続をするなら、
サービス記述子が「host」となるサービスプリンシパルを n1 のkeytabファイル(/etc/krb5.keytab)に持つ必要がある
keytabファイルを再発行する。

#code(nonumber){{
[root@c ~]# rm /etc/krb5.n1.keytab
[root@c ~]# /opt/samba/bin/samba-tool domain exportkeytab /etc/krb5.n1.keytab --principal=n1$
[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 (aes128-cts-hmac-sha1-96)
   1 host/n1.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha1-96)
   1 host/n1.sybyl.local@SYBYL.LOCAL (arcfour-hmac)
[root@c ~]#

このkeytabファイルを再度n1サイトに送り上書きする。

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

n1では、既に定義済みかと思うが /etc/krb5.n1.keytab は /etc/krb5.keytab に繋がっている事を確認する。

[root@n1 ~]# ls -l /etc/krb5.*
-rw-r--r--. 1 root root  44 12月 12 20:17 /etc/krb5.conf
lrwxrwxrwx. 1 root root  19 12月 12 19:29 /etc/krb5.keytab -> /etc/krb5.n1.keytab
-rw-------. 1 root root 697 12月 12 20:34 /etc/krb5.n1.keytab
[root@n1 ~]#

こうして再度 client からssh でn1に接続してみる

[illya@client ~]$ ssh n1
Last login: Sat Dec 12 20:36:17 2015 from client.sybyl.local
[illya@n1 ~]$

とパスワードなしでssh接続ができた。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2015-12-13 (日) 09:09:46 (1952d)