unit 9

########################
####9.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    ##连接陌生主机时需要建立认证关系
Warning: Permanently added '172.25.0.11' (ECDSA) to the list of known hosts.
[email protected]'s password:                 ##远程用户密码
Last login: Mon Oct  3 03:13:47 2016
[root@server0 ~]#                    ##登陆成功

ssh 远程主机用户@远程主机ip -X(大写的X)                ##调用远程主机图形工具
ssh     远程主机用户@远程主机ip        command        ##直接在远程主机运行某条命令

举例:
先再真机上查看ip地址 ip addr show br0 (查看真机ip,ip:172.25.78.250/24 )
ip/24 (C类ip地址,前3位是固定的) ip/16(B类ip地址,前两位是固定的) ip/8(A类ip地址,前1位是固定的)

注:(只有同网段的用户才可以远程控制)
(练习时desktop ip:172.25.78.10  server ip:172.25.78.11)
desktop虚拟机下:
ifconfig (查看desktop虚拟机的ip地址)
nm-connection-edtior (配置ip 地址)
ifconfig (查看desktop虚拟机ip地址是否配置好) desktop ip:172.25.78.10

server虚拟机下:
fconfig (查看desktop虚拟机的ip地址)
nm-connection-edtior (配置ip 地址)
ifconfig (查看desktop虚拟机ip地址是否配置好) server ip:172.25.78.11

desktop虚拟机下:
ping 172.25.78.11 (查看是否连通)
ssh [email protected] (在desktop虚拟机中,以server的root用户身份,远程控制server)
cd /root/Desktop  (进入server虚拟机的Desktop)
touch file (远程控制server,在server桌面创建file文件)
ssh [email protected] -X(大写)  (调用远程主机图形工具,执行gedit命令,编辑图形文档)
gedit qq (此时,在desktop虚拟机下打开qq,进行图形编辑,保存桌面,在server桌面显示qq文件)

扫描二维码关注公众号,回复: 3662764 查看本文章

####3.sshkey加密####
1.生成公钥私钥
[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.添加key认证方式(给自己用户加锁)
[root@server0 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub  [email protected]
ssh-copy-id        ##添加key认证方式的工具
-i            ##指定加密key文件
/root/.ssh/id_rsa.pub    ##加密key
root            ##加密用户为root
172.25.0.11        ##被加密主机ip

3.分发钥匙给client主机
[root@server0 ~]# scp /root/.ssh/id_rsa [email protected]:/root/.ssh/

4.测试

[root@desktop0 ~]# ssh [email protected]        ##通过id_rsa直接连接不需要输入用户密码
Last login: Mon Oct  3 03:58:10 2016 from 172.25.0.250
[root@server0 ~]#
举例:
(练习时desktop ip:172.25.78.10  server ip:172.25.78.11)
desktop虚拟机下:
ifconfig (查看desktop虚拟机的ip地址)
nm-connection-edtior (配置ip 地址)
ifconfig (查看desktop虚拟机ip地址是否配置好) desktop ip:172.25.78.10

server虚拟机下:
fconfig (查看desktop虚拟机的ip地址)
nm-connection-edtior (配置ip 地址)
ifconfig (查看desktop虚拟机ip地址是否配置好) server ip:172.25.78.11

在desktop虚拟机下:
cd /root/.ssh  
ls -a
rm - rf * (清空root用户下.ssh 中所有文件)
su - student
cd /home/.ssh
ls-a
rm - rf * (清空student下.ssh 中所有文件)

在server虚拟机下:
cd /root/.ssh  
ls -a
rm - rf * (清空root用户下.ssh 中所有文件)

在desktop虚拟机下:
ssh-keyen (在root用户下,.ssh目录里生成公钥私钥)
cd /root/.ssh/
ls -a (查看公钥和私钥是否生成成功)

ssh-copy-id - i /root/.ssh/id_rsa.pub [email protected] (给root用户上锁)(给root用户上锁,要经过root用户的同意,所以此时输入root用户的密码)
ssh-copy-id - i /root/.ssh/id_rsa.pub [email protected] (给student用户上锁)(给student用户上锁,要经过student用户的同意,所以输入student用户的密码)

scp /root/.ssh/id_rsa [email protected]:/root/ssh/ (给server用户钥匙,此时输入server虚拟下root用户的密码,确定身份,因为你不能随便给别人家你的钥匙,要确认身份)

杂server虚拟机下:
ssh [email protected] (在server虚拟机中,以desktop用户的root身份进入desktop虚拟机,此时是用钥匙进的desktop虚拟机,不用输入desktop虚拟机下root的密码)
ssh [email protected] (在server虚拟机中,以desktop用户的student身份进入desktop虚拟机,此时是用钥匙进的desktop虚拟机,不用输入desktop虚拟机下student的密码)


####4.提升openssh的安全级别####
1.openssh-server配置文件
/etc/ssh/sshd_config
78 PasswordAuthentication yes|no        ##是否开启用户密码认证,yes为支持no为关闭
举例:
在desktop虚拟机下:
vim /etc/ssh/sshd_config (进入远程控制配置文件)
78 PasswordAuthentication no (将78行的yes改为no)
systemctl restart sshd.service  (上一条命令更改了ssh服务配置文件,所以重启这个配置文件,让修改的内容生效)    
useradd qq
passwd qq (更改密码为qq)

在server虚拟机下:
ssh [email protected](在desktop虚拟机下,没有给qq用户锁,也没有给钥匙,所以只能输入密码连接,进行远程控制,再PasswordAuthentication no 改成no 之后,就显示没有权限连接,因为密码进入这个方式被禁止使用了)

48 PermitRootLogin yes|no            ##是否允许超级用户登陆

举例:
在desktop虚拟机下:
vim /etc/ssh/sshd_config (进入远程控制配置文件)
48 PermitRootLogin no (把前面的#去掉,把yes改称no,不允许超级用户登陆)
systemctl restart sshd.service  (上一条命令更改了ssh服务配置文件,所以重启这个配置文件,让修改的内容生效)

在server虚拟机下:
ssh [email protected]  (显示没有权限,禁止以超级用户的身份亚远程控制)


49 AllowUsers student westos            ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell

举例:
在desktop虚拟机下:
vim /etc/ssh/sshd_config (进入远程控制配置文件)
49 AllowUsers student westos(添加用户白名单,只有在名单出现的用户可以使用,此时只有student,westos用户可以让人远程控制)
systemctl restart sshd.service  (上一条命令更改了ssh服务配置文件,所以重启这个配置文件,让修改的内容生效)
useradd westos
passwd westos  (创建westos用户,改密码为westos)

在server虚拟机下:
ssh [email protected] (因为白名单没有root用户,所以从root用户被远程控制的时候,显示没有权限)
ssh [email protected] (可以从desktop虚拟机下的student用户被远程控制)
ssh [email protected]  (可以从desktop虚拟机下的westos用户被远程控制)

50 DenyUsers westos                ##用户黑名单

举例:
在desktop虚拟机下:
vim /etc/ssh/sshd_config (进入远程控制配置文件)
50 DenyUsers westos   (禁止从westos用户被人远程控制)
systemctl restart sshd.service  (上一条命令更改了ssh服务配置文件,所以重启这个配置文件,让修改的内容生效)

在server虚拟机下:
ssh [email protected] (显示没有权限,因为westos已被desktop虚拟机加入黑名单,禁止从westos用户进行远程控制)


2.控制ssh客户端访问
vim /etc/hosts.deny
sshd:ALL        ##拒绝所有人链接sshd服务

举例:
在desktop虚拟机下:
vim /etc/hosts.deny    
sshd   (拒绝所有人链接sshd服务)

在server虚拟机下:
ssh [email protected] (显示ssh_exchange_identification:reda:Connection reset by peer)
ssh [email protected]  (显示ssh_exchange_identification:reda:Connection reset by peer)

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        ##在登陆后就会显示这个字符

猜你喜欢

转载自blog.csdn.net/hetoto/article/details/83142628