InnoPM開発日誌

株式会社電縁が提供するプロジェクト・工数管理InnoPMについて

sshを利用してパスワードを使わないで接続する方法!!

こんにちは。
達人ブログです。

本日はsshを利用して、パスワード入力なしでリモートホストに接続する方法についてご紹介します。

パスワードでの接続は便利な半面、打ち間違いや漏洩の危険性もありますので、暗号化できるものは暗号化してしまいましょうという考え方です。

まずは、ディレクトリ「.ssh」を作成します。

$ mkdir .ssh
$ chmod 700 .ssh

次に鍵を作成します。

$ ssh-keygen -t dsa

ここでパスフレーズ等を設定しますが、詳細は割愛します。
基本的には表示される内容に従って「Enter」を押していきます。

「Enter passphrase ~」と指示されたら、設定したいパスフレーズを入力します。
確認のため、「同じパスフレーズをもう一度入力してください」と指示されますので、同じものを入力して下さい。


続いて公開鍵のid_dsa.pubファイルをリモートログインしたい端末へ転送します。
(※拡張子の.pubは公開鍵を表すpublicの略です。)
こちらのパーミッションも700で構いません。

そして、id_dsa.pubファイルをauthorized_keysファイルに加えます。

authorized_keysファイルは.ssh/ディレクトリの下に設定されています。

最後に、サーバ側で証明書でのログインを許可する設定を/etc/ssh/sshd_condfigファイルに書き込みます。

書き込む内容は以下の通りです。

PubkeyAuthentication yes

準備は以上になります。

ここまで完了したらsshを再起動して、サーバから一度ログアウトします。
そして改めてsshでログインして、最初に設定したパスフレーズを入力します。

ここまで実行してログインできたら、パスワード入力でのログインを不可にする設定を行います。

サーバ側の/etc/ssh/sshd_configを以下のように変更します。

PasswordAuthentication no


ポイントは、初期設定の状態だと「yes」になっているので「no」に変更することです。

変更したら、sshdを再起動します。

$ service sshd restart


設定は以上で終了です。

本日は以上です。

では、また次回に。