您好,登錄后才能下訂單哦!
1.什么是sshd服務?
客戶端主機通過網絡在服務端主機中開啟服務端主機shell的服務
客戶端通過網絡連接服務端,并且控制服務端,也就是客戶端開了服務端的shell
2.實驗環境搭建
1>在真機中打開虛擬機desktop,server(在為了實驗環境的干凈,先要reset一下兩臺虛擬機)
2>配置兩臺主機的Ip
3>在兩臺主機的shell中分別刪除 /root/.ssh/(刪除這個目錄rm -rf /root/.ssh 或者刪除這個目錄下的文件rm -rf /root/.ssh/*均可以)
備注:客戶端主機第一次連接服務端主機會在這個目錄下生成known_hosts這個文件,為了驗證這個實驗效果,所以先將這個目錄清空或者直接刪除這個隱藏目錄
直接在家目錄下面輸入ls -a(查看所有文件,包括非隱藏文件和隱藏文件) 或者l.(只查看隱藏文件)
4>修改兩個主機名字
在客戶端主機輸入 hostnamectl set-hostname client.hhh.com(desktop主機)
在服務端主機輸入 hostnamectl set-hostname server.uuu.com(server主機)
3.sshd的相關內容(客戶端連接服務端主機)
1>文本模式下連接
客戶端可以啟用服務端的文本模式功能
一臺主機可以和另外一臺主機連接起來,并且可以操作對方的文本模式1:
如果是客戶端連接服務端,則客戶端可以操作服務端的文本模式
如果是服務端連接客戶端,則服務端可以操作客戶端的文本模式
格式: ssh username@Ip 在連接時需要輸入所連主機的密碼
注意:
第一次連接陌生主機的時候需要建立認證文(~/.ssh/know_hosts文件),所以會詢問是否建立,輸入yes即可.
再次連接次臺主機的時候,由于已經生成~/.ssh/know_hosts文件,因此不需要再次輸入yes.
模式2:
(默認上面這樣打開的是文本模式,如果想要打開圖形編輯模式)
格式:ssh -X username@ip
4.遠程復制
注:文件路徑均采用絕對路徑
1.將一臺主機上的文件復制到另外一臺主機上
格式:scp file root@ip:dir
2.將遠程文件下載下來
格式:scp username@ip:file dir下載
rsysnc進行傳輸:
scp與rscp的區別
scp是相當于復制,黏貼,如果有的話是覆蓋,比較耗時間,不智能。rsync是復制,如果有重復的文件,會直接跳過,而且他自己的算法優化。scp是把文件全部復制過去,當文件修改后還是把所有文件復制過去,rsync 第一次是把所有文件同步過去,當文件修改后,只把修改的文件同步過去。
5.sshd服務的免密操作
1.原因:如果客戶端知道服務端主機的ip地址和密碼,就可以遠程操控服務端, 如果任意一個客戶端知道服務端主機的ip地址和密碼,并且知道它里面的重要文件存放路徑,那么就可以拷貝服務端的文件,這樣的操作在實際企業當中非常不安全
2.采用鑰匙和鎖子
key1:在服務端輸入:ssh-keygen ,生成鑰匙和密碼 , id_rsa是鑰匙 id_rsa.pub是鎖
在服務端輸入 ssh-keygen 三次回車 ,每次回車都有原因:
1>第一次回車是鑰匙和密碼存放路徑(可以直接回車,存放在默認路徑下)
2>第二次回車是密碼(可以直接回車,不設置密碼)
3>第三次回車也是密碼(可以直接回車,不設置密碼)
也可以不用回車,設置參數:
key2:在服務端輸入:ssh-copy -id -i /root/.ssh/id_rsa.pub username@ip 先給自己上鎖,也就是給服務端上鎖
key3:在服務端輸入:scp /root/.ssh/id_rsa username@ip:/root/.ssh/ 將密碼傳給客戶端
客戶端/root/.ssh/的這個文件(目錄)必須存在 ,相當于上傳
注意:如果客戶端沒有:/root/.ssh/這個文件,客戶端使用密碼方式重新連接一次server,會重新生成該文件
key4:驗證客戶端是否可以進行免密連接server
6.sshd的安全設定?
1.原因:因為server的root權限太大,客戶端如果使用server的root權限極不安全,為了保證ssh服務器的安全性:server開放的權限不能太多,一般不太讓客戶端主機用server主機的超級用戶root
2.常用安全規定
1>/etc/ssh/sshd_config的第78行
是否允許server的任意一個存在的用戶通過登陸系統的密碼做sshd的認證
2>/etc/ssh/sshd_config的第48行
是否允許server的root用戶通過sshd的服務
3>加入AllowUesrs student westos
設定用戶的白名單,此名單里面的用戶可以做sshd服務 (文件里不存在 直接輸入即可 多個用戶用空格隔開)
4>加入DenyUsers westos
設定用戶的黑名單,此名單
注意:改完 之后需要 systemctl restart sshd.service
5>驗證78行PasswordAuthentication yes|no
是否允許server的任意一個存在的用戶通過登陸系統的密碼做sshd的認證(最初始的那種遠程連接輸入密碼的方式),是否可以使別人在登陸時沒有鑰匙時試密碼登陸 ,yes表示可以試密碼和no表示不可以試密碼, 注釋相當于no
6>驗證48行的PermitRootLogin yes|no
是否允許server的root用戶通過sshd的服務(客戶端是否能通過server的root用戶遠程連接server)
禁止超級用戶登陸 ,限制超級用戶使用root身份來登陸ssh,默認為yes
注意:之前我們已經設置過超級用戶可以免密連接
因此做這個實驗之前應該先取消root的免密操作
在客戶端和server均刪除鑰匙也就是 rm -rf /root/.ssh/*
不允許的話會一直顯示密碼錯誤
修改端口 :port num 修改端口
7.添加sshd登錄信息
1>原因:為了使客戶端在連接server的時候可以直觀的看到服務端的相關信息,因此要添加信息,也就是使客戶端登陸,server的時候顯示server的一些信息
2>方法:1.在server的 /etc/motd 文件里面設置服務端自己的一些信息
2.vim /etc/motd 文件內容就是登錄后顯示的信息
8.用戶的登錄審計
補充: /var/log/wtmp,/var/log/btmp,:該文件存放的是last查出來的信息,但是該文件不能用cat查看,可以用放file查看
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。