linux菜鳥基礎學習 (四) openssh-server
1.openssh-server
功能:讓遠程主機可以通過網絡訪問sshd服務,開始一個安全shell
2.客戶端連接方式
ssh 遠程主機用戶@遠程主機ip
[root@desktop0 ~]# ssh [email protected]
The authenticity of host ‘172.25.0.11 (172.25.0.11)‘ can‘t be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes ##連接陌生主機時需要建立認證關系
[email protected]‘s password: ##遠程用戶密碼
Last login: Mon Oct 3 03:13:47 2016
[root@server0 ~]# ##登陸成功
[root@server0 ~]#touch file
[root@server0 ~]#gedit file2 報錯
可以在server虛擬機桌面下touch file,發現可以建立。但是gedit file2時發現報錯。
ssh 遠程主機用戶@遠程主機ip -X ##調用遠程主機圖形工具
ssh 遠程主機用戶@遠程主機ip command ##直接在遠程主機運行某條命令
練習:
1.ssh [email protected] ##在desktop虛擬機(IP:172.25.77.11)上進入server虛擬機(IP:172.25.77.88)
[root@server0 ~]# ##登陸成功
[root@server0 ~]#touch file
[root@server0 ~]#gedit file2 報錯
可以在server虛擬機桌面下touch file,發現可以建立。但是gedit file2時發現報錯。
2.ssh [email protected] -X ##就可以gedit了
3.ssh [email protected] date ##在desktop虛擬機(IP:172.25.77.11)上顯示server虛擬機(IP:172.25.77.88)的時間
4.ssh [email protected] rm -fr /root/Desktop/ * ##在desktop虛擬機(IP:172.25.77.11)上刪除server虛擬機(IP:172.25.77.88)/root/Desktop 裏的文件和目錄
3.sshkey加密
1.在server虛擬機生成鎖和鑰匙
[root@server0 ~]# ssh-keygen ##生成公鑰私鑰工具
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):[enter] ##加密字符保存文件(建議用默認)
Created directory ‘/root/.ssh‘.
Enter passphrase (empty for no passphrase): [enter] ##密鑰密碼,必須>4個字符
Enter same passphrase again: [enter] ##確認密碼
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ab:3c:73:2e:c8:0b:75:c8:39:3a:46:a2:22:34:84:81 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
|o |
|E. |
|.. |
|. . o |
|.o. . S |
|oo.o o . |
|+ =. . . |
|o. oo.+.. |
| ..o. |
+-----------------+
[root@server0 ~]# ls /root/.ssh/
id_rsa id_rsa.pub
id_rsa ##私鑰,就是鑰匙
id_rsa.pub ##公鑰,就是鎖
2.給server虛擬機上鎖
[root@server0 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
3.把鑰匙給desktop虛擬機的root用戶
[root@server0 ~]# scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
4.測試
另外一臺虛擬機的有鑰匙的root用戶,以root身份登陸上鎖虛擬機不需要密碼
[root@desktop0 ~]# ssh [email protected] ##通過id_rsa直接連接不需要輸入用戶密碼
Last login: Mon Oct 3 03:58:10 2016 from 172.25.0.250
[root@server0 ~]#
另一臺虛擬機的無鑰匙的student用戶,以root的身份登陸上鎖的虛擬機也是需要密碼的
4.提升openssh的安全級別
1.openssh-server配置文件
/etc/ssh/sshd_config
78 PasswordAuthentication yes|no ##是否開啟用戶密碼認證,yes為支持no為關閉
48 PermitRootLogin yes|no ##是否允許超級用戶登陸
49 AllowUsers student westos ##用戶白名單,只有在名單中出現的用戶可以使用sshd建立shell
50 DenyUsers westos ##用戶黑名單
練習:
在server虛擬機上 vim /etc/ssh/sshd_config
78 PasswordAuthentication no ##關閉用戶密碼認證
systemctl restart sshd.service ##重啟sshd服務
在Desktop虛擬機上以student身份(因為student身份是無鑰匙的)
su - student
ssh [email protected] 會顯示Permission denied,因為Desktop虛擬機上student身份無鑰匙,並且server虛擬機關閉了用戶密碼認證。
在server虛擬機上 vim /etc/ssh/sshd_config
48 PermitRootLogin no ##不允許超級用戶登陸
78 PasswordAuthentication yes ##開啟用戶密碼認證
systemctl restart sshd.service ##重啟sshd服務
在Desktop虛擬機上以student身份(因為student身份是無鑰匙的)
su - student
ssh [email protected] 會讓你輸root密碼
然後會顯示Permission denied,因為不允許server虛擬機的用戶以超戶的身份登陸Desktop虛擬機
如果既不允許超級用戶登陸又關閉用戶密碼認證,不會讓你輸入密碼,
直接顯示Permission denied,看不出效果。
78 PasswordAuthentication no ##關閉用戶密碼認證
48 PermitRootLogin no ##不允許超級用戶登陸
2.控制ssh客戶端訪問
vim /etc/hosts.deny
sshd:ALL ##拒絕所有人鏈接sshd服務
vim /etc/hosts.allow
sshd:172.25.254.250 ##允許250主機鏈接sshd
sshd:172.25.254.250, 172.25.254.180 ##允許250和180鏈接
sshd:ALL EXCEPT 172.25.254.200 ##只不允許200鏈接sshd
3.ssh登陸提示修改該
vim /etc/motd ##顯示登陸後字符
hello world ##在登陸後就會顯示這個字符
小知識點
清空.ssh/目錄下的內容的兩種方法:
1.cd /root/.ssh
rm -fr
2.>/root/.ssh/
登陸對方主機的兩個方式:
1.密碼
2.免密登陸,需要有鑰匙。
linux菜鳥基礎學習 (四) openssh-server