サーバ関連:ssh

文書の過去の版を表示しています。


SSH

  • サーバにセキュアに接続するためのツール、及びそのプロトコル
  • ここでは、ツールのサーバ側について説明 → クライアント側については ssh を参照
  • 設定ファイルは /etc/ssh/sshd_config
  • パスワードによるログインではなく、公開鍵認証によりログインするための設定
  • サーバ設定を先にすると、ログインできずに泣くことになるので、事前に公開鍵をサーバに登録しなければならない
  1. 公開鍵、秘密鍵の生成
$ ssh-keygen -t rsa -f keyName
  • -t rsa: 暗号化方式 (今回は RSA)
  • -f keyName: 鍵ファイル名 (生成されるファイルは、秘密鍵が keyName で、公開鍵は keyName.pub と .pub が最後に付く)
  • パスワードを尋ねられるが、設定しなくても問題ない(と思う…)
  1. 公開鍵をサーバに登録
  • 公開鍵の内容をサーバの ~/.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
  1. 公開鍵認証で接続できるか確認
$ ssh User@Server
  • 公開鍵生成でパスワードを設定しない場合は、パスワード無しで接続できる
  • 公開鍵生成でパスワードを設定した場合は、その際のパスワードで接続できるか確認
  1. パスワード認証の無効化 (/etc/ssh/sshd_config の編集)
PasswordAuthentication no
ChallengeResponseAuthentication no
  1. サーバのリスタート
$ sudo service ssh restart
  • サーバ関連/ssh.1462511310.txt.gz
  • 最終更新: 2016/05/06 14:08
  • by mumeiyamibito