Help us understand the problem. What is going on with this article?

SSH公開鍵認証で接続するまで

目的

  1. クライアントで作成したキーペアでSSH接続する
  2. パスワード認証方式を無効にする

構築した仮想環境に公開鍵認証でSSH接続するケースが多くなってきたので、まとめておく。
SSHの基礎はココを参照すると良い。

手順

クライアントPCでキーペアを作成する

ssh-keygen -t rsa -b 2048 {-f 鍵のパス}
(暗号方式:RSA,鍵長:2048bit)

/home/[user名]/.sshディレクトリに以下の秘密鍵と公開鍵が作られる。

秘密鍵:id_rsa
公開鍵:id_rsa.pub

鍵の保管先

デフォルトだとログインユーザーの.sshディレクトリにid_rsaという名前で保存される。
鍵の名前や保存先を変えたければ、-f /home/[user名]/.ssh/[鍵の名前] で保存先のパスを指定する。

パスフレーズ

未入力だと"無し"となる。
接続する度にパスフレーズを入力するのが面倒でセキュリティー的に問題がない環境なら、"無し"にする。

公開鍵をリモートに転送する

scp /home/[user名]/.ssh/id_rsa.pub [リモートユーザー]@[リモートサーバーのホスト名]:~/.ssh
  • scpが使えなければ別の方法で転送する。
  • 転送する時点では、パスワード認証方式などで、クライアントからリモートユーザーでの接続を許可しておくこと。
  • scpコマンドの基本形は scp [from] [to]

リモートで公開鍵を登録する

ssh-copy-id ~/.ssh/id_rsa.pub

公開鍵がリモートの~/.ssh/authorized_keysに登録される。

クライアントPCから公開鍵認証でリモートにSSH接続できることを確認する

ssh -i id_rsa [リモートユーザー]@[リモートサーバーのホスト名]

-i id_rsa は秘密鍵が.sshに置いてあることが前提なので、保管先が別ならパスで指定すること

パスワード認証方式を無効にする

公開鍵認証方式で接続できることが確認できたら、パスワード認証を無効にしてセキュリティーを高める。
設定はリモートサーバーにSSH接続して行う。

/etc/ssh/sshd_configを開き以下を入力する

PasswordAuthentication no

その後、再起動すると反映される

# service ssh restart

(おまけ)ssh接続で秘密鍵や接続先リモートを省略する方法

configファイルにエイリアスを定義する

/home/[user名]/.ssh/config
Host [エイリアス1]
  HostName リモートのホスト名
  User リモートユーザー
  IdentityFile /home/[user名]/.ssh/[秘密鍵]

Host [エイリアス2]
  ...

エイリアス1に接続したい場合は以下で接続できるようになる

ssh エイリアス1

(おまけ2)rootユーザーでのssh接続を無効にする

/etc/ssh/sshd_configを開き、PermitRootLoginの値をnoにするかコメントアウトする

PermitRootLogin no

その後、再起動すると反映される

(おまけ3)公開鍵認証でssh接続しているのにログインパスワードを聞かれる

ログインユーザーのホームディレクトリの.sshディレクトリと登録済みの公開鍵のアクセス権を確認する

# .sshディレクトリは、700であること
drwx------. 2 <user> <group> xx MM DD hh:mm .ssh

# .sshディレクトリ配下の公開鍵や認証情報は、600であること
-rw-------. 1 <user> <group> xx MM DD hh:mm authorized_keys
-rw-------. 1 <user> <group> xx MM DD hh:mm id_rsa.pub

参考

インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識
sshのパスワード認証方式を無効にする
ssh公開鍵認証設定まとめ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away