OpenSSH > SSHで自動ログインする方法

更新日 2014-10-01
広告

SSHで自動ログイン(パスワード入力なし)する方法を紹介します。

ローカルホストに自動ログイン

まず、パスワード無しの鍵(公開鍵と秘密鍵)を生成します。 ここでは暗号アルゴリズムをRSAとします。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hoge/.ssh/id_rsa.
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
b8:1e:87:16:3a:93:0d:6b:5b:87:f9:89:46:d1:d1:78 hoge@local
       :
鍵の保存場所やパスフレーズ(passphrase)の入力を求められますが、全て、何も入力せずにリターンを押します。 すると、ホームディレクトリ以下の .ssh ディレクトリの下に、鍵が作成されるので、公開鍵(id_rsa.pub)を、authorized_keysに追加します。
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
authorized_keysのパーミッションは、600とします。
$ ls -l ~/.ssh/authorized_keys 
-rw------- 1 hoge hoge 1000 Oct  7 15:35 /home/hoge/.ssh/authorized_keys
上記のようになっていなければ、chmodで変更する必要があります。
$ chmod 600 /home/hoge/.ssh/authorized_keys
ちなみに、.sshディレクトリの権限は 700 としてください。
$ ls -la ~/ | grep ssh
drwx------  2 hoge hoge 4096 Oct  7 15:34 .ssh
これで、ローカルホストへ自動ログインできるはずです。
$ ssh localhost

リモートホストに自動ログイン

まず、クライアント側(ログイン元)で、鍵を生成します。
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase):  # 何も入力しない
Enter same passphrase again: 

.ssh以下にid_rsa (秘密鍵)とid_rsa.pub (公開鍵)が作成されるので、公開鍵をサーバ側(ログイン先)にコピーします。

次に、サーバ側にて、以下の処理を行います。

$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys 
これで、クライアント側で ssh -i オプションを使い、秘密鍵(id_rsa)を指定すれば、自動ログインできます。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system