当サイトは、アフィリエイト広告を利用しています

SSHで公開鍵認証を設定する方法~Ubuntu~

作成日:2023月09月12日
更新日:2023年09月21日

自分は自宅でメインPC(Windows10)とサブPC(Linux(Ubuntu))を使っていて
メインからsshでサブにログインして仮想環境作ってたりすることが最近、増えてきた。

メインからsshでログインする際の認証時にパスワードを打つのが面倒で
公開鍵認証を設定したのでその方法をメモしておく。

環境

  • Windows10(メインPC)
  • Ubuntu 22.04.3 LTS(サブPC)

前提としてサブPCにはsshで接続できること!
設定方法は下記記事でまとめています

メインPCではWindowsTerminalでGitBashを使っています。

サブPC作業

サブPCにログインして.sshフォルダ作る
※.sshが既にある場合は不要

フォルダ作成
# サブPCにssh
ssh [ユーザー名]@[サブPCのホスト名orIPアドレス]
# ホームディレクト直下に作る
mkdir .ssh

メインPC作業

まずはメインPCではSSHキーペア(公開鍵と秘密鍵)を生成する

SSHキーペア生成
# .sshフォルダに移動
cd ~/.ssh
# キーペア作成
ssh-keygen -t rsa -f [ubuntu_key]
ls
ubuntu_key ubuntu_key.pub
  • .sshフォルダがなければ作る
  • ubuntu_keyは任意の名前を付ける
  • 秘密鍵と公開鍵をできる※~pubの方が公開鍵

公開鍵をサブPCへ送る

キーペアの内、公開鍵の方をサブPCに送る

bash
scp ./ubuntu_key.pub [ユーザー名]@[サブPCのホスト名orIPアドレス]:~/.ssh/

これでサブPCの~/.ssh内に公開鍵をコピーされた

サブPC作業

サブPCではメインPCからもらった公開鍵の
名称を変更する

公開鍵名称変更
# アクセス権限設定
chmod 700 ~/.ssh
# コピー
cat ~/.ssh/ubuntu_key.pub >> authorized_keys
# 確認
ls
authorized_keys ubuntu_key.pub
# アクセス権限設定
chmod 600 ~/.ssh/authorized_keys
# 不要分を削除
rm ~/.ssh/ubuntu_key.pub
# 確認
ls
authorized_keys

ここまでで、キーの設定は終了

/etc/ssh/sshd_configの編集

sshd_configファイルを編集して
公開鍵認証をONにする

sshd_config
# 公開鍵認証
PubkeyAuthentication yes
# パスワード認証
PasswordAuthentication no

公開鍵を設定していない状態で上記の状態にしたり
両方ともnoにした状態でログアウトすると入れなくなるので注意!!!!

SSHサーバーを再起動

設定を反映させるために再起動する

ssh再起動
sudo service ssh restart

公開鍵を使ってログインしてみる

作ったキーペアを使って認証して
ログインする

ログイン
ssh -i ubuntu_key [ユーザー名]@[サブPCのホスト名orIPアドレス]

-i ubuntu_keyには秘密鍵のパスを指定する
デフォルトでは/home/[User名]/.ssh ディレクトリを参照するようになっている
保管先が別ならパスで指定すること

これで公開鍵認証ができるようになった。

公開鍵認証のエイリアスを設定する

公開鍵認証ができるようになったが
毎回、秘密鍵のパスを書くのは面倒なのでエイリアスを
設定しておく。

/c/Users/ユーザー名/.ssh/config
# エイリアス
Host ubuntu
# ユーザー名
User [ユーザー名]
# ホスト名orIPアドレス
Hostname [サブPCのホスト名orIPアドレス]
# 公開鍵認証のみを使うか
IdentitiesOnly yes
# 秘密鍵のパス
IdentityFile ~/.ssh/ubuntu_key

これを設定しておけば
エイリアスのみでログインできるようになる

エイリアス
ssh ubuntu

まとめ

毎回、パスワード認証行うのは面倒なので
公開鍵認証を使う方がいい。
またセキュリティ的にも公開鍵認証の方が強力なので
パスワード認証を使う場合は、強力なパスワードを設定する必要がある

参考

新着記事

タグ別一覧
top