SSHってなになの?

  • サーバにアクセスする場合、いままでは telnet が主に使用されていましたが、この telnet コマンドやパスワードが平文で送信されているため盗聴の危険のあるネットワーク(インターネット)で使用するのはリスクが高く非常に危険で考え出された方法として、暗号化を施し通信するという考えに基づき考えられたのが SSH (Secure SHell) です。
  • 最近では、フリーのLinuxは全てsshがデフォルトでインストールされ、sshにより端末からアクセスします。
  • ここでは、ssh の設定ファイル値のみ解説します。

sshの設定ファイル

  • /etc/ssh/sshd_config
    # ポート指定
    Port 50000
    
    # SSHプロトコルの指定
    Protocol 2
    
    # rootでのアクセス禁止
    PermitRootLogin no
    StrictModes yes
    
    # RSA公開鍵認証
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
    # .rhostsおよび.shostsファイルを使用しない
    RhostsRSAAuthentication no
    
    # /etc/passwordによる認証の無効化、空パスワードの無効化
    PasswordAuthentication no
    PermitEmptyPasswords no
    
    # hoge, hoge2 ユーザのみアクセスを有効にする
    AllowUsers hoge hoge2
    
    # 最大起動数(SSHピンポンダッシュ)
    MaxStartups 10:30:60
    
    # 公開鍵などを保管するディレクトリ等の属性が適切に設定されているか
    StrictModes yes
    
    # ~/.rhosts or ~/.shosts ファイルの無効化
    IgnoreRhosts yes
    
    # チャレンジ・レスポンス認証
    ChallengeResponseAuthentication no
    
    # X11 port forwardingを無効化
    X11Forwarding no
  • 設定が終わったら sshd の再起動/自動起動設定を行います。
    # /etc/init.d/sshd restart
  • Fedora16 の場合
    % sudo systemctl restart sshd.service
    % sudo systemctl enable sshd.service

ssh鍵の生成

  • Unix や Linux などの環境を持っている人は少ないので、ここでは PuTTY 付属の「puttygen.exe」を使って鍵を生成していきます。
  • 作成した秘密鍵は自分を証明する物ですので他人と共有したりしないようにしましょう。
  • puttygen.exe を実行します。
    • 初期の状態(生成する鍵のビット数は、2048にします)
      putty_key_01.png
    • 「生成」ボタンを押下してマウスをグリグリします。
      putty_key_02.png
    • 鍵が生成されたらパスフレーズを入力します、鍵のコメントも編集しておきましょう。
      putty_key_03.png
    • 公開鍵と秘密鍵を保存します。拡張子は、「pub=公開鍵、ppk=秘密鍵」とします。
    • PuTTYで作成された秘密鍵は、OpenSSHでは使用できないので「変換-OpenSSH形式へエクスポート」にて変換することにより使用することができます。

公開鍵の登録

  • 接続するサーバにPuTTYで作成した公開鍵を登録します。
    PuTTYで作成された公開鍵は、OpenSSH形式でないのでOpenSSH用に変換する必要があります。
  • sshの設定と、OpenSSH用に変換する手順は以下の通りです。
    1. ホームディレクトリ以下に .ssh ディレクトリを作成します。
      % cd ~
      % mkdir .ssh
      % chmod 700 .ssh
    2. PuTTYで作成された公開鍵をOpenSSH用に変換します。
      % cd ~/.ssh
      % ssh-keygen -i -f 公開鍵.pub > authorized_keys
      % chmod 600 authorized_keys

PuTTY から秘密鍵を使用してアクセスする

sftp を使ってみる

  • セキュアなアクセスができたら次は、ファイル転送をやりたくなりますよね(笑)。
    scpでもよいのですが、より高機能な sftp を使用してみます。
    • ここらへんが、sftp ってなに?というので詳しく書かれています。 参考1,参考2
  • sftpを対応しているソフトで使いやすそうな、FileZilla を使いましょうー。
    • FileZillaに秘密鍵を登録するには、「編集メニュー」から「設定」を実行し設定ダイアログが表示されたら、ツリーからSFTPを選択すると、鍵ファイルを登録することができます。
    • コメントはずす
      # override default of no subsystems
      Subsystem       sftp    /usr/libexec/openssh/sftp-server

sftp と ChrootDirectory

  • sftpをデフォルトで使用すると、管理者以外でもホームパスより上へアクセスすることができてしまいます。
    システムファイルは、root以外でアクセスすることができませんが多少気持ち悪いので ChrootDirectory を使用することによって
    vsftpd で指定する「chroot_list_enable=YES」と同じようなことができます。
  • sftp でもパスワード認証で公開すると意味がないので、鍵認証も同様に使用できるように設定します。
注意点
ChrootDirectory では、root 権限になるため公開鍵を読み込ませることができないため
通常のユーザディレクトリと ChrootDirectory でのディレクトリを分離し管理する必要があります。
  1. sftponly グループに属しているユーザのみをsftpが使用できるポリシーとします。
  2. sftponly グループを追加します。
    # groupadd sftponly
    1. sftpを使用したいユーザをsftponlyグループに追加します。(例では、hoge と hoge2)
      sftponly:x:1002:hoge,hoge2
  3. /etc/ssh/sshd_config を編集します。
    # 内部のsftpを使うように指定する
    #Subsystem      sftp    /usr/local/libexec/sftp-server
    Subsystem       sftp    internal-sftp
    
    # 認証されたユーザがsftponlyグループの場合、ChrootDirectoryを実施する
    Match group sftponly
            ChrootDirectory /home2/%u
            X11Forwarding no
            AllowTcpForwarding no
            ForceCommand internal-sftp
  4. sshd を再起動する
    # /etc/init.d/sshd restart
    • Fedora16 の場合
      % sudo systemctl restart sshd.service
  5. 公開鍵(authorized_keys)を $HOME/.ssh に設定する
    hoge  -> /home/hoge/.ssh/authorized_keys
    hoge2 -> /home/hoge2/.ssh/authorized_keys
    1. hoge2 の設定
      # cd /home
      # mkdir hoge2
      # cd hoge2
      # mkdir .ssh
      # chmod 700 .ssh
      # .ssh
      # cp /home/hoge/.ssh/authorized_keys . 
  6. ChrootDirectory で管理されるディレクトリを作成する(hoge の場合)
    # mkdir -p /home2/hoge
    # chown root:root /home2/hoge
  7. hoge が書き込めるディレクトリを作成する(share でなくてもok、好きなディレクトリ名でw)
    # cd /home2/hoge
    # mkdir share
    # chown hoge:hoge share
    # chmod 777 share

参考にさせて頂いたサイト様


添付ファイル: fileputty_key_03.png 579件 [詳細] fileputty_key_02.png 653件 [詳細] fileputty_key_01.png 679件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-08-30 (水) 15:29:33