きまブログ

2022-12から再開しました。

ubuntuで、パスワードなしでsshログインしたい - ホスト認証編

ID&パスワードの入力をせずに、ログインできるようにしたので、備忘録。
そこにたどり着くために、ホスト認証からスタート。

環境

ubuntu14.04 LTS on VirtualBox 4.3

  • SSHサーバー:ubuntu14.04 (ubuntu14server)
  • SSHクライアント:ubuntu14.04 (ubuntu14client)
sshサーバのインストール

kima@ubuntu14server:~$ sudo aptitude install openssh-server

ホスト認証(概要)

カンタンなホスト認証の仕組み

はじめてリモートログインするリモートホストsshでログインしようとすると、
こんなメッセージがでます。

kima@ubuntu14client:~/.ssh$ ssh 192.168.9.3
The authenticity of host '192.168.9.3 (192.168.9.3)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?

これは、「このホストにアクセスするのはじめてだけど大丈夫?」ということ。
なりすまし防止のための確認です。

ここで、yesと入力すると、
接続元(sshクライアント)の、~/.ssh/known_hosts に、
接続先(sshサーバ)のホスト名と(接続先の)公開鍵をペアが保存されます。
※ このファイルのフォーマットは勉強不足。。

sshサーバのホスト鍵

ここで使われるsshサーバの公開鍵は、sshサーバのホスト鍵で、
/etc/ssh/ディレクトリにあるものが使われます。

後で作るクライアントのアカウントに作成・保存するユーザー用の公開鍵/秘密鍵とは違います。

kima@ubuntu14server:/etc/ssh$ ll
-rw-------   1 root root   1675  522  2015 ssh_host_rsa_key
-rw-r--r--   1 root root    396  522  2015 ssh_host_rsa_key.pub