harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

ssh ホストベース認証(メモ)

   


概要

パスワード/パスフレーズなしでSSHログインできるよう、ホストベース認証を設定する方法。

クライアント側(接続元)設定

ホストベースでの外部ホストへの接続を許可するため
/etc/ssh/ssh_configへ以下の設定を追加

  • 全てのホストへのホストベース認証を有効にする場合(例)
    Host *
            ForwardX11 yes
            HostbasedAuthentication yes
            PreferredAuthentications hostbased,publickey,password
            EnableSSHKeysign yes
            ForwardAgent no

    または

    HostbasedAuthentication yes
  • ホストを指定する場合
    Host www.hogehoge.com
            ForwardX11 yes
            HostbasedAuthentication yes
            PreferredAuthentications hostbased,publickey,password
            EnableSSHKeysign yes
            ForwardAgent no

サーバ側(接続先)設定

外部ホストからの接続を受けるため
以下の設定を追加

  • /etc/sss/sshd_config
    #HostbasedAuthentication no 
    ↓
    HostbasedAuthentication yes
  • /home/USERNAME/.shosts
    ※デフォルトでは用意されていないので自分で作成。
     接続を許可する接続元ホストのFQDNやIPアドレスを記述。

    $ touch .shosts
    $ vi .shosts
    www.hogehoge.com
    111.222.121.212
    www.example.com
    123.123.123.***
    $ chmod 600 .shosts
  • 接続元ホストのホスト公開鍵を追加
    /etc/ssh/ssh_known_hosts
    ここへ接続元ホストのホスト公開鍵を持ってくる。

    • /etc/ssh/以下の公開鍵ファイル
      ssh_host_key.pub
      ssh_host_rsa_key.pub
      ssh_host_dsa_key.pub

      使用するプロトコルに応じてそれぞれ登録する。

    • 書式
      接続元ホストのFQDN、IPを公開鍵の前にそれぞれ追記する。
      <hostname>,<ip> <公開鍵ssh-dss…>
    • 書式例:
      www.example.com,123.123.123.*** ssh-dss AAAAB3NzaC1kc3MAAACBAJ
      GCYT/RYje+Jl6itA8euo98gN7AGuEofLco1C5FfOKz/+7miXFj36VtYLapRtKv
      +kL0KGqm/r0777/hMQzlbxYNw25K91IQBnvxh1GDtDCmv8bp6UbHomyd80nRnN
      FLIWTizQqhOc0sNox3jKA+gVXhpiU8IS0CP17xJT+WIqfZAAAAFQDur786ab1D
      4Iaqs8qu2Ul+yfQoUQAAAIBJJ8J/yAZj3MNnpGZMt+NV8UzilaSmCQtw105ShS
      9EYjQkJ/IDdW2omtowF6RlNybEdYBAEP0Db3cc72Sn7IwBDuBdxlkEtLF3RPta
      bzuE1z9sIwIP1ukwVCunxNS9lZGCrrtgyjjnrlHpKRUkj6Bsm63Qxt9m1cqDDH
      2YZgND8gAAAIBpeWrLAmibk0OOxQHXg60hoSfpt7if1fLjBrIxhoR+FJvOL+/1
      fRIMmEHLGgXqQ6Q00QJrVSL6Nfmgxxt3nS8neF3TOXeNaKqxd/sEK2GOsKP0RL
      rxNVlbhJnkP+A5+mVim5/Bfj2v4U8P6WuetWpwmK67JzpeQQytohUhKcGrnA==

確認・デバッグ

hostAからexampleにsshで接続

 - GNU/Linux, ssh