SSH之密鑰登錄linux
1.背景介紹shell
平時咱們都是經過輸入帳號和密碼的方式登錄遠程終端,那有沒有其餘的玩法呢?答案是:固然有!下面就介紹一種經過密鑰的方式登錄ssh。
ubuntu
工具準備:一臺電腦(推薦win10),一臺虛擬機(推薦vmware workstation11),ssh登錄工具(xshell,securecrt,putty,推薦xshell),linux系統(redhat,centos,debian,ubuntu,推薦centos7.3)。windows
下面開始動手操做。centos
2.實驗步驟ssh
假設你已經經過ssh工具登錄上了linux終端。ide
(1)生成公鑰和私鑰工具
ssh-keygen -t rsacentos7
Enter file in which to save the key (/root/.ssh/id_rsa): ##直接回車使用默認路徑spa
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): ##輸入密碼
Enter same passphrase again: ##重複密碼
在/root/.ssh/目錄下會生成兩個文件,id_rsa爲私鑰,id_rsa.pub爲公鑰。私鑰本身下載到本地電腦妥善保存,公鑰則能夠任意公開。
(2)下載私鑰到windows
sz /root/.ssh/id_rsa
若是沒有請安裝軟件包lrzsz(yum install -y lrzsz)
(3)導入公鑰
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
(4)更改SSH配置文件
修改SSH 的配置文件/etc/ssh/sshd_config,找到下面3行:
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
將前面的#去掉後保存。重啓SSH 服務,運行命令:systemctl restart sshd
(5)xshell配置(看圖)
1.新建一個會話
2.選擇身份驗證方式
3.導入私鑰
4.輸入本身設定的密碼
5.肯定用戶密鑰
6.輸入密碼
7.選擇相應的會話
8.成功登錄
(6)關閉SSH密碼登錄
修改SSH的配置文件/etc/ssh/sshd_config,找到下面1 行:
PasswordAuthentication yes
修改成:
PasswordAuthentication no
重啓SSH服務,並運行命令:
systemctl restart sshd