客戶端配置
(1)生成公鑰/私鑰對
ssh-keygen -t rsa -P ''
-P表示密碼,-P ” 就表示空密碼,也可以不用-P參數,這樣就要三車回車,用-P就一次回車。
如果是root用戶下生成,生成位置將在:/home/.ssh裏面。前提是,你得創建一個.ssh目錄。如果是普通用戶,將在/home/用戶名/.ssh裏面。
(2)公鑰複製到服務器
可以手動複製,也可以通過scp遠程傳輸複製(需要登錄密碼):
想要免密登錄普通用戶:
scp .ssh/id_rsa.pub 用戶名@192.168.1.181:/home/用戶名/.ssh/authorized_keys
想要免密登錄root用戶:
scp .ssh/id_rsa.pub root@192.168.1.181:/root/.ssh/authorized_keys
服務器配置
(1)首先:配置ssh服務器配置文件。
在root 用戶下才能配置。
vi /etc/ssh/sshd_config
修改之後爲:
PermitRootLogin no
PasswordAuthentication no
權限設爲yes:
RSAAuthentication yes
PubkeyAuthentication yes
(2)重啓sshd服務
systemctl restart sshd.service
systemctl status sshd.service #查看ssh服務的狀態
#systemctl start sshd.service #開啓ssh服務
#sytemctl enable sshd.service #ssh服務隨開機啓動,還有個disabled
#systemctl stop sshd.ervice #停止
正常情況下應該是Active:active(running)
(3)修改文件夾以及文件的權限。
如果是普通用戶修改:
chmod 700 /home/用戶名/.ssh
chmod 644 /home/用戶名/.ssh/authorized_keys
如果是root修改:
chmod 700 /root/.ssh
chmod 644 /root/.ssh/authorized_keys
通過命令連接:ssh -v 用戶名@hostname
如果root用戶或者普通用戶免密登錄報錯(SSH configuration, publickeys, Permission denied (publickey,password)):
請關閉SELinux:
暫時關閉(重啓後恢復):
setenforce 0
永久關閉(需要重啓):
vi /etc/selinux/config
SELINUX=disabled
參考:
https://www.cnblogs.com/xubing-613/p/6844564.html
http://flysnowxf.iteye.com/blog/1567570