sshd服務提供兩種安全驗證的方法:
基於口令的安全驗證:經過驗證帳號與密碼即可登陸到遠程主機。
基於密鑰的安全驗證:需要在本地生成”密鑰對“后將公鑰傳送至服務端,進行公共密鑰的比較(相對安全)。
首先:無論通過哪一種安全驗證方法進行遠程控制都需要配置遠程主機sshd服務的文件:
[root@lhbza ~]#vim /etc/ssh/sshd_config
並且在遠程主機上啟動sshd服務並加入到開機啟動項:
[root@lhbza ~]# systemctl start sshd
[root@hbza ~]# systemctl enable sshd
sshd服務的配置文件解析:
參數 |
作用 |
#Port 22 |
默認的sshd服務端口。 |
#ListenAddress 0.0.0.0 |
設定sshd服務端監聽的IP地址。 |
#Protocol 2 |
SSH協議的版本號。 |
#HostKey /etc/ssh/ssh_host_key |
SSH協議版本為1時,私鑰存放的位置。 |
HostKey /etc/ssh/ssh_host_rsa_key |
SSH協議版本為2時,RSA私鑰存放的位置。 |
#HostKey /etc/ssh/ssh_host_dsa_key |
SSH協議版本為2時,DSA私鑰存放的位置。 |
#PermitRootLogin yes |
設定是否允許root用戶直接登錄。 |
#StrictModes yes |
當遠程用戶私鑰改變時則直接拒絕連接。 |
#MaxAuthTries 6 |
最大密碼嘗試次數 |
#MaxSessions 10 |
最大終端數 |
#PasswordAuthentication yes |
是否允許密碼驗證 |
#PermitEmptyPasswords no |
是否允許空密碼登陸(很不安全) |
一、口令驗證:
ssh命令用於遠程管理Linux主機,格式為:“ssh [參數] 主機”。
參數 |
作用 |
-p |
指定連接端口(默認為22) |
-v |
顯示連接過程的詳細信息 |
指定用戶登錄 :
ssh 用戶@主機
[root@yyd~]# ssh sdy@192.168.38.100
root登錄:
[root@yyd ~]# ssh 192.168.38.100
二、密鑰驗證:
使用密碼驗證終歸會存在着被駭客暴力破解或嗅探監聽的危險,其實也可以讓ssh服務基於密鑰進行安全驗證(可無需密碼驗證)。
第1步:在本地主機中生成“密鑰對”並將公鑰傳送到遠程主機中:
1、在本地生成密鑰
[root@yyd ~]# ssh-keygen
2、將生成好的公鑰密鑰傳送至遠程主機:
[root@yyd ~]# ssh-copy-id 192.168.38.100
第2步:首先要在遠程主機中修改sshd服務的配置文件(修改后記得重啟服務):
1、編輯ssh服務程序主配置文件。
2、將允許密碼驗證的參數設置為no。
<1>、進如vi編輯器 ’:/PasswordAuthentication' 回車,搜索文件內容:
<2>、搜索結果:
<3>、設置配置
PasswordAuthentication no 運行設置為no
#PasswordAuthentication yes 注釋設置yes
第3步:將允許密鑰驗證的參數設置為yes。
vim esc 切換命令模式 同上步驟運行 PubkeyAuthentication yes
第4步:保證設定是否允許root用戶直接登錄
運行PermitRootLogin yes
第5步:保存並退出配置文件。
:wq
第6步:重啟ssh服務程序后即可生效。
第7步:最后來嘗試無需密碼的遠程登錄吧:
[root@yyd ~]# ssh 192.168.38.100