LoginSignup
43
35

More than 5 years have passed since last update.

公開鍵認証でパスワード入力を省略する

Last updated at Posted at 2018-04-08

ローカルで起動しているサーバにログインする際
毎回パスワードを入力するのが面倒なので、公開鍵認証を使用して省略します。

環境

  • 端末A(Ubuntu17) ー接続する側
  • 端末B(CentOS7) ー接続される側

Linux以外でも多分同じ。

公開鍵認証で接続するための4ステップ

スライド2.JPG

  1. 「接続する側」で秘密鍵と公開鍵を作る。
  2. 1で作った公開鍵を「接続される側」に送る。
  3. 「接続される側」で、送られてきた公開鍵をauthorized_keysファイルに登録(追記)する。
  4. 「接続する側」から「接続される側」にSSH接続し、パスフレーズを入力。

これ以降はSSHなどで接続した時、パスワードを聞かれなくなります。

公開鍵認証で使用する3つのファイル

スライド1.JPG

実際にやってみる

「接続する側」で秘密鍵と公開鍵を作る

まず端末A「接続する側」で秘密鍵と公開鍵を作るため、
以下のコマンドを実行します。

$ ssh-keygen -t rsa

コマンド実行後パスフレーズの入力を求められます。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): Enterキー
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): パスフレーズ入力
Enter same passphrase again: 再度パスフレーズ入力

パスフレーズは忘れたら鍵を作り直さないといけなくなるので注意。

以上の入力が終わって、こんなのが出たら秘密鍵と公開鍵の作成は終了です。
鍵は/home/user/.sshに保存されています。

Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
(フィンガープリント)

「接続される側」に公開鍵を送る

端末A「接続する側」で作った公開鍵を端末B「接続される側」に送ります。
いろんな方法がありますが、今回はscpコマンドを使います。

$ scp ~/.ssh/id_rsa.pub user@host:~

「接続される側」で、公開鍵を登録する

端末Aから送られてきた公開鍵を登録します。
端末Bに.sshディレクトリがない場合はmkdirなどで作っておきましょう。

$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

コマンド実行後は送られてきたid_rsa.pubを削除しても大丈夫です。

接続する

鍵の登録が済んだのでsshコマンドで公開鍵認証で接続できるか確認しましょう。
最初の接続は鍵を作った際に入力したパスフレーズを聞かれるので入力します。
接続できたらexitで一旦抜けて、再度接続してみてください。
パスワードを聞かれなければ公開鍵認証成功です。

補足

接続できない場合は以下の点を確認してください。

参考

公開鍵暗号 - wikipedia
https://www.pistolfly.com/weblog/2007/02/ssh.html

43
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
35