Macから公開鍵認証でSSHログインする [Ubuntu 22.04 LTS]

スポンサーリンク
Linux
スポンサーリンク

環境

接続元Mac
接続先Ubuntu 22.04 LTS Server
スポンサーリンク

接続元(Mac)の作業手順

前準備

Macでターミナルアプリを起動します。

公開鍵認証用のキーペアを作成

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_ubuntu -C ""

RSAよりも強固でパフォーマンスも良い暗号化アルゴリズムである “Ed25519” を使用します。

実行するとMacの “~/.ssh” ディレクトリの中に、次の2つのファイルが作成されます。

ファイル名用途
id_ed25519_ubuntu秘密鍵
id_ed25519_ubuntu.pub公開鍵

ssh-keygenのオプションについて

オプション意味
-t ed25519ed25519暗号化アルゴリズム
-f ~/.ssh/id_ed25519_ubuntuファイル名を”id_ed25519_ubuntu”にする。
(指定しない場合、”~/.ssh/id_ed25519″になる)
-C ""ファイル内末尾のコメント部を記載しない。
(指定しない場合、コメント部に「<接続元ユーザー名>@<接続元ホスト名>」が記載される)

公開鍵をサーバにコピーする

ssh-copy-id -i ~/.ssh/id_ed25519_ubuntu.pub <接続先ユーザー名>@<接続先ホスト名orIPアドレス>

作成した公開鍵を接続先のサーバにコピーします。

ssh-copy-idのオプションについて

オプション意味
-i ~/.ssh/id_ed25519_ubuntu.pubコピーする公開鍵ファイルの場所を指定します。

実際に接続できるか確認する

ssh -i ~/.ssh/id_ed25519_ubuntu <接続先ユーザー名>@<接続先ホスト名orIPアドレス>

# ssh接続できることを確認

exit

公開鍵認証でssh接続ができることを確認したら、一旦exitでssh接続を終了します。

sshコマンドのオプションについて

オプション意味
-i ~/.ssh/id_ed25519_ubuntu秘密鍵ファイルを指定します。

sshコマンドを短縮する (エイリアス定義)

毎回、上の長いコマンドを使うのは大変なので、エイリアス定義を追加します。

vim ~/.ssh/config

configファイルを作成して、以下の内容を記入します。<接続先エイリアス名>には接続先名として自分が分かりやすい名前を指定してください。

Host <接続先エイリアス名>
  HostName <接続先ホスト名orIPアドレス>
  User <接続先ユーザー名>
  Port 22
  IdentityFile ~/.ssh/id_ed25519_ubuntu
【補足】vimで編集開始するときは i キーを押して編集(Insert)モードに入ります。
【補足】vimで編集が終わった後は「:wq」で保存して抜けます。

接続先のUbuntuサーバーに接続する

ssh <接続先エイリアス名>

これで公開鍵認証でのsshログインが簡単にできるようになりました。

スポンサーリンク

接続先(Ubuntu)の作業手順

パスワード認証を無効化する

まだパスワード認証が有効になっているので、公開鍵認証を使わなくてもパスワードが分かればssh接続できてしまいます。以下の操作でパスワード認証を無効にします。

ssh接続の設定ファイルを開き、編集します。

sudo vim /etc/ssh/sshd_config
編集前
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes   👈 ここのコメントアウト(#)を外して、noにする。
編集後
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

sshdサービスを再起動する

sudo systemctl restart sshd

sshd_configの設定内容を反映するため、sshd (ssh接続を受ける常駐プログラム) を再起動します。

以上です!

コメント

タイトルとURLをコピーしました