Skip to content


サポート FAQ

FAQ No. 1
カテゴリー システム全般
アップデート日 2008年4月

質問:

パスワードを使用しないで SSH ログインする方法を教えてください。

回答:

以下に SSH での公開鍵認証によるユーザー認証の手順を記述致します。

ユーザ認証のために以下の 3 つの鍵が必要となります。

リモートマシンに保存するユーザ公開鍵
ローカルマシンに保存するユーザ秘密鍵
秘密鍵を利用するためのパスフレーズ

(1) ssh-keygen による鍵の作成方法

[ssh protocol version 1 の場合]

local$ ssh-keygen -t rsa1

Generating public/private rsa1 key pair.
Enter file in which to save the key (/root/.ssh/identity):
Enter passphrase (empty for no passphrase): <<< パスフレーズの入力
Enter same passphrase again: <<< パスフレーズの再入力
Your identification has been saved in /root/.ssh/identity.
Your public key has been saved in /root/.ssh/identity.pub.
The key fingerprint is:
b3:c3:49:fb:5b:c6:8d:6e:7a:89:d8:4e:d2:96:fa:a8 root@hoge.example.com

[ssh protocol version 2 の場合]

local$ ssh-keygen -t dsa

Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): <<< パスフレーズの入力
Enter same passphrase again: <<< パスフレーズの再入力
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
4e:e4:a0:bc:ca:2f:c3:3c:f2:60:87:bb:80:4f:d3:20 root@hoge.example.com


(2) 公開鍵のコピー方法

リモートマシンのホームディレクトリ上に .ssh ディレクトリを作成しパーミッションを設定します。
remort$ mkdir .ssh
remort$ chmod 700 ~/.ssh
ローカルマシンでもパーミッションを設定します。
local$ chmod 700 ~/.ssh

公開鍵は公開して構わないですので、コピーの方法は ftp scp 等どちらでも結構です。
local$ scp ~/.ssh/identity.pub user@remotemachine:~/.ssh
(3) authorized_keys ファイルを生成方法
[ssh protocol version 1 の場合]

remort$ mv identity.pub authorized_keys

[ssh protocol version 2 の場合]

remort$ mv id_dsa.pub authorized_keys
パーミッションを変更します。
remort$ chmod 600 ~/.ssh/authorized_keys
ファイルの中身は以下の様になります。
ssh-dss 
AAAAB3NzaC1kc3MAAACBAJkxCkPjx6ivxhCAL9gBNlD0dej6/u851wGH0ItRssvqNtkJvMceFHFT
vTGGJGS/RgW7esEhD91oWMmhjhp3uPtTgbw7X7VKP9bhoRBccOFBs/Zxz0K8QwHizdnAlEj9rr6y
jLnrt0u7HjwAUPe2NuuNZ/dK6Uyj0yUQCumkQkm1AAAAFQDBlW82PDonQnKPVD1/Qd3CBb68TwAA
AIEAjw+r4Oa30MZXSmBDT5dWjyGctNwWd2a0X25tyMrPGoPAoO8gHmOztmi0EVI95mGGP0sI8sH8
//+zmonRoIzL9idQWE1z0zi7xO01URYXgBiDPi3U2Y1IV4FtZP6igv4J7D0uFA90Ch3njNOG+OhZ
Zg3s0oC0oq9OOjehZyeVic4AAACAVEe10/Fnr8h7WT5hGnmQRiPU/ZeOO87A073QNHsRsFnLakdk
uIRv9vRT1g4dGyV5rkeR0X1QqV3GWHnOyb0l8cYY4KQGqcEt8INC6dPds58NYfgrtrB0D2aYPuL/
RLnjg2VvJueIBIK/tNpmnOFcFoRNpVtne/xoPZCnCCmOqWc= root@hoge.example.com

(4) 鍵のパーミッション設定上の注意

.ssh、 authorized_keys に自分以外書き込み権限を与えないで下さい。

(5) その他の注意事項

秘密鍵は絶対に公開しないで下さい。
パスフレーズを使用しない設定はセキュリティー上推奨されません。

(6) 以下に ssh-agent を使用してパスフレーズを記憶する手順を記述致します。

6-1
local$ exec /usr/bin/ssh-agent $SHELL
6-2
local$ ssh-add
 ここでパスフレーズを入力します。

この設定は実行したターミナル/コンソールでログイン中のみ有効です。
ログイン毎に上記コマンドの実行が必要です。

(7) SSH でのログインは以下の様に行います。
local$ ssh remort