CentOS配置SSH免密碼登錄為例
說明:SSH遠程登錄的安全外殼協議有兩種身份認證機制:
- 用戶名+密碼
-密鑰登錄
環境准備
host1:192.168.0.10
host2:192.168.0.11
下面以host1 ssh免密碼登錄到host2為例,進行說明
1、在host1主機下生成私鑰/公鑰對
執行如下命令一直回車即可。
[user@localhost ~]$ ssh-keygen -t rsa
命令執行完成后,在/home/user下生成.ssh目錄,.ssh目錄下有id_rsa和id_rsa.pub兩個文件。
2、將host1主機下的id_rsa.pub復制到host2主機下
[user@localhost ~]$ scp .ssh/id_rsa.pub user@192.168.0.11:~
此時還沒有免密碼登錄,所以要輸入host2的密碼
3、host2主機須將復制過來的id_rsa.pub文件中的內容添加到/home/user/.ssh/authorzied_keys文件中
需要修改authorized_keys文件的權限為600
[user@localhost ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[user@localhost ~]$ chmod 600 .ssh/authorized_keys
現在host1主機可以無密碼登錄host2主機了
說明:第2、3步可以用一個命令搞定:ssh-copy-id 192.168.0.11
4、驗證host1主機登錄到host2主機
[user@localhost ~]$ ssh 192.168.0.11
總結:登錄的機子可有私鑰,被登錄的機子要有登錄機子的公鑰。這個公鑰/私鑰對一般在私鑰宿主機產生。
上面是用rsa算法的公鑰/私鑰對,當然也可以用dsa(對應的文件是id_dsa,id_dsa.pub)
想讓host1,host2機無密碼互登錄,那host2主機以上面同樣的方式配置即可。