[OpenSSH] 公開鍵暗号方式による ssh ログイン

[OpenSSH] 公開鍵暗号方式による ssh ログイン

こんにちは。先日、淀川花火大会の花火を初めて見た k-so16 です。

普段、サーバーに入るために ssh を利用してログインしています。個人で使っているサーバーには、公開鍵暗号方式でログインしていますが、デフォルトの設定であることに加え、 ssh の設定を ~/.ssh/config に記述して、楽な方法でログインしています。普段オプションを指定せずにログインしていて、鍵ファイルなどを指定する方法を忘れたので、自分の備忘録も兼ねて鍵ファイルを用いたログイン方法を紹介します。

想定する読者層は以下の通りです。

  • ssh の基本的な使い方を知っている
  • 公開鍵暗号化方式について知っている

鍵を指定した ssh ログイン方法

ssh コマンドでログインする際に、秘密鍵のファイルを指定する場合には、 -i オプションを利用します。デフォルトでは、 ~/.ssh/id_rsa または ~/.ssh/id_dsa が指定されます。これらのファイルは、 ssh-keygen コマンドで鍵ファイルを生成されます。

秘密鍵のファイルを指定する方法
ssh -i 秘密鍵ファイルのパス 接続先サーバー

ユーザー名とポート番号の指定

ログインする際のユーザー名を指定するためには、 -l オプションを用います。デフォルトでは、ローカルのユーザー名でログインを試みます。

ssh -l ユーザー名 接続先サーバー

ログイン先のユーザー名は、 -l オプションを用いる代わりに、サーバー名の前にユーザー名を指定する方法もあります。こちらの方法の場合、ユーザー名とサーバー名の間に @ を入力します。

ssh ユーザー名@接続先サーバー

接続先サーバーのポート番号を指定するためには、 -p オプションを用います。デフォルトでは、 22 番ポートが指定されます。

ssh -p 接続先のポート番号 サーバー名

-p オプションを用いる代わりに、サーバー名の後ろにポート番号を指定する方法もあります。こちらの方法の場合、サーバー名とポート番号の間に : を入力します。

ssh サーバー名:ポート番号

オプションの使用例

リモート先のサーバー example.com に次の条件で ssh ログインをする場合を考えます。

  • 秘密鍵のファイルのパス: ~/.ssh/my-private-key
  • リモート先でログインするユーザー名: hoge
  • ポート番号: 2222

ログインする際のコマンドは以下のようになります。

ssh -i ~/.ssh/my-private-key -l hoge -p 2222 example.com

次の方法でもログインできます。

ssh -i ~/.ssh/my-private-key hoge@example.com:2222

総括

本記事のまとめです。

  • 秘密鍵ファイルを指定するためには -i オプションを利用
  • ログイン時のユーザー名を指定するためには -l オプションを利用
  • 接続先のポート番号を指定するためには -p オプションを利用

以上、 k-so16 でした。~/.ssh/config は便利ですが、同時にオプションも書かなくなって、ついつい忘れてしまいますね。


おまけ

自宅から淀川花火大会を観ていました。当日はかなり涼しく、快適に花火大会を満喫できました。

当日撮影した花火大会の写真を以下に掲載します。

pub key encrypt ssh 1

pub key encrypt ssh 2

pub key encrypt ssh 3

pub key encrypt ssh 4

写真は Google Pixel 3 で、ナイトモードで撮影しました。やはり花火の撮影は難しいですね。

k-so16