1、準備工做:
一、確認本機sshd的配置文件(須要root權限)
shell
#vim /etc/ssh/sshd_config
找到如下內容,並去掉註釋符」#「
vim
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys #關閉密碼登錄 PasswordAuthentication no
二、若是修改了配置文件須要重啓sshd服務 (須要root權限)
安全
#systemctl restart sshd.service
配置SSH無密碼登陸須要3步:
1.生成公鑰和私鑰
2.導入公鑰到認證文件,更改權限
3.測試
1.生成公鑰和私鑰
服務器
$ssh-keygen -t rsa
默認在 ~/.ssh目錄生成兩個文件:
id_rsa :私鑰
id_rsa.pub :公鑰
2.導入公鑰到認證文件,更改權限
2.1 導入本機
ssh
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2.2 導入要免密碼登陸的服務器
首先將公鑰複製到服務器
測試
$scp ~/.ssh/id_rsa.pub xxx@host:/home/id_rsa.pub
而後,將公鑰導入到認證文件(這一步的操做在服務器上進行)
rest
$cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
2.3 在服務器上更改權限
code
$chmod 700 ~/.ssh $chmod 644 ~/.ssh/authorized_keys #若是是Red Hat 5.6的話,最好改爲600,不然認爲是不安全的~
解決本地登錄用戶與遠程登錄用戶不一致io
好吧,這事很糾結,雖然不用輸入密碼了,可是還得 ssh username@hostname 來登錄,很不爽,你懂的。 其實解決也很簡單(but是同事告訴個人,老臉一紅),修改本地登錄用戶的 ~/.ssh/config 文件,若是木有的話就自個兒建一個吧,內容以下:class
Host hostname user liluo
這樣,本地和遠程登錄用戶名不一致也能夠 ssh hostname 登錄了。