トップページ -> インストール,設定,利用 -> Ubuntu の利用,運用保守,設定,便利な使い方,Ubuntu サーバ -> SSH の公開鍵,秘密鍵の設定(接続先は Ubuntu マシン)
[サイトマップへ], [サイト内検索へ]

SSH の公開鍵,秘密鍵の設定(接続先は Ubuntu マシン)

ssh を使うように設定する. そして, 接続先,接続元の両方の設定を行う.接続先は Ubuntu マシンであるとして説明する.

SSH は,たとえ暗号化されているといっても、パスワードが毎回ネットワークを流れるのは心配,という問題がある. 前もって,接続元で公開鍵を作って,接続先に登録しておくことで, この公開鍵を使って認証するという公開鍵暗号方式を使うと,「パスワードが ネットワークを流れることなくログイン」ができる.

接続先の設定は,SSH サーバで,公開鍵,秘密鍵暗号方式を機能させる設定である.システム管理者が行う.

接続元での設定は,一般利用者が行う.次の2コマンドである.

ssh-keygen -t ed25519 -C ''
cat $HOME/.ssh/id_ed25519.pub | ssh <ユーザ名>@<接続先のマシン名またはIPアドレス> 'mkdir $HOME/.ssh; cat >>$HOME/.ssh/authorized_keys'

openssh のインストール (Ubuntu の場合)


接続先(SSH サーバ側)での設定 (Ubuntu の場合)

以下の操作は,接続先のマシンで,システム管理者が実施する.

  • PermitRootLogin no

    root でのログインの抑止

    [image]
  • PermitEmptyPasswords no

    空のパスワードの抑止

    [image]
  • UseDNS no

    ホストの IP アドレスの逆引きの抑止。これが Yes のままだと ssh でのログインが遅い場合がある。

    [image]

    接続元(ユーザマシン)での公開鍵の生成,接続先(SSH サーバ側)への転送

    以下の操作は、各ユーザが、接続元(ユーザマシン)で、一般ユーザの権限で実行.

    Windows マシン の場合は,MobaXTermをインストールし,それに内蔵の ssh-keygen, ssh を使うのが便利.

    1. 公開鍵と秘密鍵の生成

      ssh-keygen」を使う

      ssh-keygen -t ed25519 -C ''
      

      このコマンドの実行のときに,パスフレーズを設定. 同じパスフレーズを2回入れること. パスフレーズは画面に表示されないのは正常動作である.

    2. 2つの鍵ファイル $HOME/.ssh/id_ed25519(秘密鍵), $HOME/.ssh/id_ed25519.pub(公開鍵) が各ユー ザのホームディレクトリ内に作成されるので確認

    3. 公開鍵のファイルを,接続先(SSH サーバ側)に転送

      次の1コマンドで転送できる.

      cat $HOME/.ssh/id_ed25519.pub | ssh <ユーザ名>@<接続先のマシン名またはIPアドレス> 'mkdir $HOME/.ssh; cat >>$HOME/.ssh/authorized_keys'
      

      接続先のマシンが複数あるときは、公開鍵のファイルの転送を繰り返すこと.


    接続先(SSH サーバ側)で,公開鍵を使うように設定 (Ubuntu の場合)

    以下の操作は,接続先のマシンで,システム管理者が実施する.

    1. /etc/ssh/sshd_config を編集する
      • ホストキーについての設定.HostKey の行

        先頭に「#」が付いていたら外す

        HostKey /etc/ssh/ssh_host_ed25519_key
        

      • 公開鍵暗号方式についての設定.PubkeyAuthentication の行.
        PubkeyAuthentication yes
        
    2. sshd の再起動

      Ubuntu ならば、

      sudo service sshd restart
      

    問題が起きたときの動作チェック

    問題が起きたら、下記の手順で動作チェックします。
    1. 接続先のSSH サーバを,手動で,デバッグモードで起動する.

      「/usr/sbin//sshd -d」とあるのは、デバッグモードでの起動.

      services sshd stop
      /usr/sbin/sshd -d 
      
    2. 接続元から接続してみる

      「-2」は ssh のバージョン指定

      ssh -2 -l <ユーザ名> <接続先の IP アドレスまたはマシン名>
      

    本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

    問い合わせ先: 金子邦彦(かねこ くにひこ) [image]