hermemo-エルメモ-

情報の神の備忘録

SSHで公開鍵認証を使って自動認証 UbuntuServer 16.04

time 2017/04/28

SSHで公開鍵認証を使って自動認証 UbuntuServer 16.04

SSHを設定するとパスワード認証ないし公開鍵認証を設定できます。今回は公開鍵認証を設定して、なおかつそれを自動認証させたいと思います。

理由としては最近構築しているOpenMPIを用いた並列演算装置用でパスワードを入力するのが手間だからです。

sponsored link

手順

  1. クライアントにライブラリをインストール
  2. クライアントで公開鍵を作成
  3. クライアントの設定
  4. サーバーにライブラリをインストール
  5. サーバーに公開鍵を移動
  6. サーバーに公開鍵を設定
  7. サーバーの設定

1.クライアントにライブラリをインストール

接続に必要なライブラリをインストールします。各OSによってライブラリが異なる場合があります。今回はUbuntu Server 16.04を使います。

2.クライアントで公開鍵を作成

クライアント側で公開鍵を作ってそれをサーバーに登録します。そのための公開鍵を作成します。

その後出力するファイル名とパスフレーズを聞かれますが、特に問題がない限り設定せずEnterキーを押し続けたので問題ないです。

作成されたことを確認しておく。ファイルは特に指定していない限りユーザーのホームディレクトリ以下に[./ssh]という名のディレクトリ内に作成されます。

なお、ファイルは2つ作成されます。
[id_rsa]が秘密鍵, [id_rsa.pub] が公開鍵です。

3.クライアントの設定

ディレクトリのアクセス権限を変更しておきます。

4.サーバーにライブラリをインストール

サーバーにはサーバー用のライブラリをインストールします。

 

5.サーバーに公開鍵を移動

サーバーにクライアントで作成した公開鍵を移動させます。方法はどんな方法でも構いません。

FTP,SCP,NFSなど自由にやったので構いません。今回は一例としてscpでの方法を紹介しておきます。scpに関して詳しくは後日。

6.サーバーに公開鍵を設定

サーバーにクライアントから持ってきた公開鍵を登録して自動認証されるように設定します。

まず、[/home/[username]/.ssh/]に[authorized_keys]というファイルが有るか確認します。なお、[authorized_keys]は自動認証の登録ファイルです。ここに登録されているパスワードは自動認証されます。[authorized_keys]はデフォルトの名前なので、変更しても構いません。その場合[5.7]で行う[SSHサーバーの設定]の際に注意てください。

[authorized_keys]がない場合

 

パスワードを設定する。

[5.4]で移動してきた鍵をauthorized_keyaに追加します。

 

※[.ssh]のディレクトリがない場合

手動でディレクトリを作成するか、公開鍵を発行すると自動で作成されます。

手動でディレクトリを作る

7.サーバーの設定

まずはディレクトリとファイルのアクセス権限を変更します。

サーバーの設定ファイルを編集する。
[/etc/ssh/sshd_config]がSSHサーバーの設定ファイルです。ここで公開鍵認証の許可とその際に使用する鍵ファイルの設定を行います。

この二箇所がコメントアウトされている場合があるので有効化しておく。また、32行目のpathはデフォルトの場合なので別の名前を使用する場合はpathも変更する。

最後に

以上でSSHの公開鍵認証による自動認証が設定できました。この状態でSSH接続を試みてパスワードの入力を求められなければ成功です。

トラブルシューティング

もし、うまくいかない場合はディレクトリ等のアクセス権限を確認してください。

また、それぞれのファイルがきちんとした場所に存在しているかも確認しましょう。

当方はNFSでホームディレクトリを共有していた時に.sshのディレクトリも共有されていてうまく設定が反映されていない場合がありました。そんな時は一度共有を止めて確認後、pathを変更しましょう。

sponsored link

down

コメントする




*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



sponsored link