如何實現(xiàn)免密碼登陸
1.生成密鑰對
# ssh-keygen
提示問題可以直接回車選擇默認即可。
Enter passphrase (empty for no passphrase)
构哺,這個密碼的作用是保護本地私有密鑰的密碼革答。也就是說,即使有人到用了你的計算機或私鑰文件曙强,在使用密鑰登錄時也會要求輸入密碼解鎖私鑰文件残拐。
默認在~/.ssh
目錄生成兩個文件:id_rsa
(私鑰)和id_rsa.pub
(公鑰)。
2.上傳公鑰到服務(wù)器端
# ssh-copy-id -i ~/.ssh/id_rsa.pub xxxx.com
現(xiàn)在我們就可以在客戶端直接用ssh xxxx.com
來登陸了碟嘴,本地的公鑰文件也可以刪除了溪食。
3.進一步配置
修改服務(wù)端
配置文件,拒絕拒絕密碼驗證臀防。修改/etc/ssh/sshd_config
文件眠菇。
PasswordAuthentication yes # 改為no
然后重新啟動sshd
。
# systemctl restart sshd
修改SSH的端口
一袱衷、修改ssh配置文件
在/etc/ssh/sshd_config中添加:
Port 22 # 先保留22端口捎废,成功后再刪除
Port 12345
安裝SELinux的管理工具semanage
# yum provides semanage
再安裝運行semanage所需依賴工具包policycoreutils-python
。
# yum -y install policycoreutils-python
查詢當前 ssh 服務(wù)端口:
# semanage port -l | grep ssh
向 SELinux 中添加 ssh 端口:
# semanage port -a -t ssh_port_t -p tcp 12345
防火墻放行
# firewall-cmd --zone=public --add-port=12345/tcp --permanent
# firewall-cmd --reload
然后重啟 ssh 服務(wù):
# systemctl restart sshd.service
嘗試通過10086端口登錄SSH致燥,或者進入該服務(wù)器直接本地訪問SSH如下:
# ssh root@localhost -p 12345
如果成功登疗,說明12345
已經(jīng)完全可以使用了,接下來你就可以根據(jù)上述步驟把sshd_config
的Port22
注釋掉嫌蚤,SELinux
和防火墻關(guān)閉22
端口就OK辐益!