目次

SSH

概要

サーバ側の設定

公開鍵認証の設定

  1. 公開鍵、秘密鍵の生成 → ssh-keygen を参照
  2. 公開鍵をサーバに登録
    • 公開鍵の内容をサーバの ~/.ssh/authorized_keys に追記する
    • ssh-copy-id を使う (簡単)
      $ ssh-copy-id -i keyName.pub User@Server
      • 基本は ssh に似ている
      • -i keyName.pub: 登録する公開鍵ファイルを指定 (ない場合は、デフォルトで生成する id_rsa.pub が指定される)
      • User: サーバのユーザ名
      • Server: サーバ名
    • 手動で登録
      1. サーバにログイン
      2. ~/.ssh/authorized_keys をエディタで開く (ない場合は新規作成)
      3. クライアント側にある公開鍵ファイルをエディタで開く
      4. クライアント側の公開鍵ファイルの内容をサーバ側の authorized_keys に追記する形で、コピペ
      5. セキュリティを高めるため、以下の権限変更をする
        $ chmod 700 ~/.ssh
        $ chmod 600 ~/.ssh/authorized_keys
    • トリッキーなワンライナーでの方法
      $ cat ~/.ssh/keyName.pub | ssh User@Server 'cat >> ~/.ssh/authorized_keys'
    • scp で公開鍵を転送し、追記
      $ scp ~/.ssh/keyName.pub User@Server:~
      $ ssh User@Server
      $ cat ~/keyName.pub >> ~/.ssh/authorized_keys
  3. 公開鍵認証で接続できるか確認
    $ ssh User@Server
    • 公開鍵生成でパスワードを設定しない場合は、パスワード無しで接続できる
    • 公開鍵生成でパスワードを設定した場合は、その際のパスワードで接続できるか確認
  4. パスワード認証の無効化 (/etc/ssh/sshd_config の編集)
    PasswordAuthentication no
    ChallengeResponseAuthentication no
  5. サーバのリスタート
    $ sudo service ssh restart

参考サイト