什么是SSH:
SSH 為 Secure Shell 的縮寫,由 IETF 的網絡工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。如果一個用戶從本地計算機,使用SSH協議登錄另一台遠程計算機,我們就可以認為,這種登錄是安全的,即使被中途截獲,密碼也不會泄露。當主機中開啟openssh服務,那么就對外開放了遠程連接的接口,ssh為openssh服務的客戶端,sshd為openssh服務的服務端。
實驗:1.安裝開啟sshd服務,首先使用用戶名、密碼登錄方式登錄。
在虛擬機中登錄CentOS 7操作系統,使用命令 systemctl status sshd.service 查看sshd服務狀態
可以看到CentOS 7中是默認安裝sshd服務的,接下來使用putty64工具登錄系統
首先查看centos 7地址,使用命令ip addr
打開putty工具,在Host Name(or IP address)輸入虛擬機IP,在Port輸入默認端口號22,點擊Open打開
使用虛擬機用戶名、密碼進行登錄
centos7操作SSH/SSHD服務(查看/啟動/重啟/自啟)
查看狀態: systemctl status sshd.service
啟動服務: systemctl start sshd.service
重啟服務: systemctl restart sshd.service
開機自啟: systemctl enable sshd.service
2.配置sshd,root用戶不可登錄
首先編輯/etc/ssh/sshd_config文件,使用命令vim /etc/ssh/sshd_config
修改PermitRootLogin后面的yes為no,將前面的#去掉,使用i進入編輯模式,進行修改,修改后按Esc,進入命令模式,然后用Shift+ZZ保存退出。
重啟sshd服務,使用命令 systemctl restart sshd.service
重新打開putty,連接虛擬機,輸入root用戶名,密碼,進行登錄。正確的密碼提示Access denied ,訪問被拒絕。
3.使用公鑰證書認證方式登錄,非密碼方式。
首先修改配置文件/etc/ssh/sshd_config,將下列三項前面的注釋# 去掉,就是可以讓秘鑰登錄
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
下載puttygen.exe工具,雙擊打開
點擊Generate,開始生成密鑰,在頁面中間空白區域來回移動鼠標,可以快速生成密鑰。
區域內生成的就是公鑰,“Key comment”保持不變也可以編輯,用來對密鑰介紹。“Key passphrase”是用來給私鑰加密,“Confim passphrase”是重復輸入密碼,使用認證登錄時,只加載私鑰輸入這個密碼就可以登錄系統。點擊Save private key保存私鑰到本地
復制公鑰到服務器。點擊公鑰進行復制,粘貼到/root/.ssh/authorized_keys文件下。首先使用 mkdir /root/.ssh 創建目錄,命令 mkdir /root/.ssh
修改目錄權限為700,命令 chmod 700 /root/.ssh/
新建文件anthorized_keys,命令 vim /root/.ssh/authorized_keys,將公鑰粘貼進去,保存退出(此時可以設置root為可以登錄,使用putty打開,進行復制粘貼)
然后就可以使用秘鑰登錄了,首先打開putty輸入虛擬機IP,端口號22,點擊左側SSH下拉框,進入Auth模塊
點擊Browser加載,本地的私鑰文件,打開
回到了PuTTY登錄頁面輸入root
直接輸入自己私鑰密碼即可登錄
*需要注意的就是儲存公鑰的目錄一定要修改權限為700,公鑰內容別粘貼錯
4.設置sshd日志,單獨存放至/var/ssh/sshd.log中
首先修改ssh程序。使用命令vim /etc/ssh/sshd_config打開配置文件,修改SyslogFacility AUTHPRIV為SyslogFacility local5,保存退出
然后修改日志程序。使用命令Vim /etc/rsyslog.conf打開日志程序(注意是rsyslog.conf!!!),添加如下兩行代碼,並保存退出
# save sshd messages also to sshd.log
local5.* /data/log/sshd.log
重啟sshd服務以及syslog服務。使用命令systemctl restart sshd.service service rsyslog restart
打開PuTTY使用公鑰證書認證方式登錄,查看日志。tail /var/log/sshd.log