SSHのhostbase認証

  • 投稿日:
  • by

SSHでhostbase認証の設定をした。

ようは、パスワードなしでログインできるように設定。
rhostsはさすがにあぶないので、ssh2から使用できるhostbase認証を用いる。

認証の仕組みは、サーバからクライアントに鍵付認証でSSH loginすることで、「サーバにとってクライ
アントが信用できる」としてしまうことである。
もちろん、それだけではなく、shosts(rhosts)を使って、任意のユーザアカウントにログインできるク>ライアントホスト名とユーザを制限する。

下記で、サーバ側はdev@server01、クライアント側は hotmorn@client01とした。


  1. client側で、serverにログインするときは、hostbase認証を使用するように設定。

    # su
    # vi /etc/ssh/ssh_config
    EnableSSHKeysign yes
    Host server01
        HostbasedAuthentication yes
    

    これで、server01にログインするときは、hostbase認証を使う。

  2. server 側 SSHログイン設定
    clientに公開鍵認証によるログインをするための作業。

    % ssh-keygen -t rsa
    
    適当にsshkeyを作成
    % scp .ssh/id_rda.pub hotmorn@client01:
    
    ここではまだパスワード認証。あるいは、ftp。


  3. client ユーザ設定
    serverから公開鍵認証によるログインを許可するための作業。

    % cd $HOME
    % cat id_rsa.pub >> .ssh/authorized_keys
    

  4. serverからclientにお試しログイン

    % ssh hotmorn@client01
    
    ここでパスフレーズによるログインができればOK

  5. serverのパスワードなしログイン許可設定

    # su
    # vi /etc/ssh/sshd_config
    IgnoreRhosts no
    HostbasedAuthentication yes
    # exit
    % cd $HOME
    % vi .shosts
    10.1.12.127 hotmorn
    % chmod 600 .shosts
    % vi .ssh/known_hosts
    client01,10.1.12.127 ssh-rsa ....
    

    先頭の「10.1.12.127」を「client01,10.1.12.127」に変更。
    このとき、「,」の両側にスペースはいれないこと。

  6. client からserverにパスワードなしでログイン

    % ssh dev@client01
    
    ここで問題がおこったら、デバッグモードで確認すること。
    % ssh -v dev@server01