SSHの公開鍵をSSHログイン用に設定する

SSHの公開鍵をログイン用としてLinuxサーバーに設定する手順を紹介します。

手順

RSAキーペアの作成

認証に用いるSSHのキーペアをさ作成します。Windows では"PuTTYgen"というソフトウェアを利用して作成できます。 PuTTYのインストール手順はこちらの記事を参照してください。 標準インストールでPuTTYをインストールするとPuTTYgenもインストールされます。
PuTTYgenでのキーペアの作成手順はこちらの記事を参照してください。

公開鍵をLinuxサーバーにアップロード

作成したキーペアファイルのうち公開鍵をLinuxサーバーにアップロードします。 最近のLinuxはSSHがデフォルトでインストールされていることが多いため、sshdを起動し、SCPまたはSFTPでファイルをアップロードするのが簡単です。 Windowsからは"WinSCP"というソフトウェアを利用するとSCP,SFTPでのファイル転送ができます。
WinSCPのインストール手順はこちらの記事を参照してください。 WinSCPでのLinuxサーバーへの接続手順はこちらの記事を参照してください。

公開鍵の変換

PuTTYgenで作成した公開鍵はそのままでは、OpenSSHの公開鍵としては使えません。ssh-keygen コマンドを実行して公開鍵を変換します。以下のコマンドを実行します。
ssh-keygen -i -f (PuTTYgenで生成した公開鍵) > (変換先ファイル名)

ssh-keygen -i -f mykey.pub > mykey-os.pub

.sshディレクトリの確認と作成

ここからは、Linuxサーバー側の端末で作業します。
su (SSHで接続するユーザー名)
SSHで接続するユーザーに切り替えます。rootアカウントを持っていない場合はSSHで接続するユーザーでLinuxにログインします。
SSHで接続するユーザーのホームディレクトリで下記のコマンドを実行します。
ls -lsa
ファイル一覧が表示されますので ".ssh"ディレクトリが存在するか確認します。
ディレクトリがなければ
mkdir .ssh
コマンドを実行しディレクトリを作成します。

公開鍵の取り込み

OpenSSH形式の公開鍵をauthorized_keysファイルに追記します。
下記のコマンドを実行するか、geditやvi,emacsなどでコピーペーストします。
cat (OepnSSH形式の公開鍵ファイル名) >> (.sshディレクトリ内のauthorized_keysファイルのパス)

cat mykey-ssh.pub >> .ssh/authorized_keys
または
cat /home/penguin/mykey-ssh.pub >> /home/penguin/.ssh/authorized_keys

動作確認

動作確認をします。

PuTTYでキーペアを使った接続で確認する

こちらのページの"RSAキーペアを用いた認証で接続する場合"の接続手順で接続ができるかを確認します。

WinSCPでキーペアを使った接続で確認する

こちらのページの"接続手順 (RSA公開鍵認証を用いる場合)"の接続手順で接続ができるかを確認します。
著者
かつて日本を代表したスーパーエンジニア (自称)
ハードウェア、電気設備、ガーデニング関係の記事を担当。
最終更新日: 2024-01-24
作成日: 2013-02-08
iPentec all rights reserverd.