SSHでパスワードなしでログインする方法

2021-06-18

パスワード入力無しでSSHログインする方法について

Linuxのサーバー間で、SSH接続時にパスワードなしでログインする方法は昔からありますが、いつも調べて使っていたので今回はその方法をまとめました。
下記の方法では、test01、test02サーバーの双方からパスワードなしでログイン出来るようにします

【環境】

  • OS:CentOS 6.6
  • サーバー:test01(192.168.11.150), test02(192.168.11.151)
  • ユーザー名:testdev

DSA鍵を生成

DSA鍵を生成を作成します。パスフレーズなしの設定にしますのでエンターキーで押します
(実施サーバー:test01、test02

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/testdev/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): # ←Enter(パスフレーズなし)
Enter same passphrase again: # ←Enter(パスフレーズなし)
Your identification has been saved in /home/testdev/.ssh/id_dsa.
Your public key has been saved in /home/testdev/.ssh/id_dsa.pub.
The key fingerprint is:
5e:85:61:7f:bf:ae:71:3f:4b:52:8a:0f:e5:6e:f9:da testdev@test150
The key's randomart image is:
+--[ DSA 1024]----+
| o |
| . + |
| . o . |
| . . . |
| S . . ..|
| . . + o .|
| . o =.+ |
| +oB..|
| .=+E+|
+-----------------+

公開鍵を追加します

test01(192.168.11.150)から、test02(192.168.11.151)にSSH接続し公開鍵(authorized_keys)を追加設定していきます
(実施サーバー:test01

# 公開鍵(authorized_keys)のファイルを、test02(192.168.11.151)に追加します
[testdev@test01 ~]$ ssh -l testdev 192.168.11.151 touch /home/testdev/.ssh/authorized_keys
testdev@192.168.11.151's password: # testdevのパスワードを入力します

# 公開鍵(authorized_keys)パーミッションを変更します
[testdev@test01 ~]$ ssh -l testdev 192.168.11.151 chmod 600 /home/testdev/.ssh/authorized_keys
testdev@192.168.11.151's password: # testdevのパスワードを入力します

# 公開鍵(authorized_keys)の内容を設定します
[testdev@test01 ~]$ cat /home/testdev/.ssh/id_dsa.pub | ssh -l testdev 192.168.11.151 'cat >> '/home/testdev/.ssh/authorized_keys
testdev@192.168.11.151's password: # testdevのパスワードを入力します

同様にtest02(192.168.11.151)から、test01(192.168.11.150)にSSH接続し公開鍵(authorized_keys)を追加設定していきます
(実施サーバー:test01

[testdev@test02 ~]$ ssh -l testdev 192.168.11.150 touch /home/testdev/.ssh/authorized_keys
[testdev@test02 ~]$ ssh -l testdev 192.168.11.150 chmod 600 /home/testdev/.ssh/authorized_keys
[testdev@test02 ~]$ cat /home/testdev/.ssh/id_dsa.pub | ssh -l testdev 192.168.11.150 'cat >> '/home/testdev/.ssh/authorized_keys

動作確認

(実施サーバー:test01、test02

# test150 → test151
[testdev@test01 ~]$ ssh 192.168.11.151
# test151 → test150
[testdev@test02 ~]$ ssh 192.168.11.150

※IPアドレス・ユーザー名などはご使用の環境に合わせて変更して下さい