1.什么是openssh

是一个提供远程访问控制的软件

 

2.如何实现远程访问

ssh 远程主机用户@远程主机ip地址##远程到IP的主机

 

##建立安全传输key

 (九)Linux基础之ssh_ssh

 

logout | exit | ctrl +d  ###退出

(九)Linux基础之ssh_密钥_02 

 

[root@localhost ~]# vim /etc/motd ###设定登陆显示字符

 

ssh远程实验过程

(1)在两台虚拟机上分别建立两个新用户client,westos,设定它们的密码,并logout当前用户登陆。

    第一次进行远程登陆的时候会显示以下信息,再次登入则不再显示,只需要直接键入密码即可登入。

(九)Linux基础之ssh_密钥_03 

    此信息存入在家目录的.ssh目录下的known_hosts中/home/client/.ssh/known_hosts,删除此文件后,再次登入则将会再次显示信息

 

(九)Linux基础之ssh_远程_04

(九)Linux基础之ssh_密钥_05 

2登入后,会进入该用户的家目录,可对另一台电脑进行远程控制。

例如,进入桌面,建立文件

(九)Linux基础之ssh_密钥_06 

(3)删除建立的文件,退出登录

(4)用一条命令远程登入并完成操作(建立文件)

ssh  westos@172.25.254.115  touch /home/westos/Desktop/file{1..10}

(九)Linux基础之ssh_远程_07 

 

5用一条命令远程登入并打开火狐

(九)Linux基础之ssh_远程_08 

错误!

加上参数 -X(大写的X

ssh  -X  westos@westos@172.25.254.115  firefox

(九)Linux基础之ssh_远程_09 

 

3.sshd服务的简单配置

vim /etc/ssh/sshd_config##sshd服务的配置文件

 

48  PermitRootLogin yes|no##是否允许root用户通过sshd的认证

78  PasswordAuthentication yes|no##开启或关闭用户密码认证

AllowUsers  student  westos##用户白名单,只允许在名单中出现的用户使用sshd服务

 

systemctl restart sshd##从新加载配置

 

 

关于配置的简单实验

一、PermitRootLogin的修改

1)在server上更改sshd服务的配置文件/etc/ssh/sshd_config

vim  /etc/ssh/sshd_config

(九)Linux基础之ssh_ssh_10 

#改为no   

(九)Linux基础之ssh_远程_11

(2)systemctl  restart  sshd 更新配置

(九)Linux基础之ssh_ssh_12 

在client虚拟机不能远程此主机的root用户

 

二、PasswordAuthentication的修改

(1)server上更改sshd服务的配置文件/etc/ssh/sshd_config

vim  /etc/ssh/sshd_config

(九)Linux基础之ssh_远程_13 

 

(2)systemctl  restart  sshd 更新配置

(九)Linux基础之ssh_远程_14 

关闭密码登入,没有密钥不能远程登入

 

三、关于用户白名单

AllowUsers student westos##用户白名单,只允许在名单中出现的用户使用sshd服务

 

1vim  /etc/ssh/sshd_config,添加AllowUsers  westos

    当设置AllowUsers  westos,即只允许远程登入该IP的westos用户(不管PermitRootLoginyes还是no,当白名单没有root,就不允许远程登入该主机的root用户,必须两个条件都满足才可以)即优先级最高

(2)在server上新建一个用户new,并设定密码,尝试远程以new用户登入该主机

(九)Linux基础之ssh_密钥_15 

失败!

PS:此时无法使用密码成功登入,因为这个私钥文件是针对目标主机的westos用户的加密的,所以尝试以其它用户登入该主机使用该密钥会失败!

 

4.ssh的key认证

[test@foundation0 ~]$ ssh-keygen ##生成公钥和私钥的工具

Generating public/private rsa key pair.

Enter file in which to save the key (/home/test/.ssh/id_rsa):『enter』 ##指定加密字符保存文件,使用默认

Created directory '/home/test/.ssh'.

Enter passphrase (empty for no passphrase): ##密码,必须大于4位

Enter same passphrase again: 

Your identification has been saved in /home/test/.ssh/id_rsa.

Your public key has been saved in /home/test/.ssh/id_rsa.pub.

The key fingerprint is:##确认密码

a5:4f:02:51:68:59:f4:e8:e3:c5:91:1f:6f:86:99:06 test@foundation0.ilt.example.com

The key's randomart p_w_picpath is:

+--[ RSA 2048]----+

|      .*+        |

|      +. o .     |

|     .. . E .    |

|       o + + *   |

|        S + * +  |

|       . * . o   |

|        . .      |

|                 |

|                 |

+-----------------+

[test@foundation0 .ssh]$ pwd

/home/test/.ssh##生成密钥存放位置

[test@foundation0 .ssh]$ ls

id_rsa  id_rsa.pub###id_rsa位私钥,id_rsa.pub位公钥

 

#####################使用key加密目标主机的目标用户############

[test@foundation0 ~]$  ssh-copy-id -i /home/test/.ssh/id_rsa.pub westos@172.25.254.100  

 

The authenticity of host '172.25.254.100 (172.25.254.100)' 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

/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

westos@172.25.254.100's password: 

 

Number of key(s) added: 1

 

Now try logging into the machine, with:   "ssh 'westos@172.25.254.100'"

and check to make sure that only the key(s) you wanted were added.

 

 

ssh-copy-id###上传key的工具

-i##指定使用的公钥

/home/test/.ssh/id_rsa.pub###使用公钥的名称

westos##被管理的目标用户

172.25.254.100##被管理用户所在主机的ip

 

 

authorized_keys##此文件在目标用户加目录的.ssh中,这个文件就是目标用户被加密的标识,文件内容位公钥内容。

 

ssh-copy-id -i id_rsa.pub root@localhost

//给本地主机的指定用户上一把锁id_rsa.pub(一个锁可以同时锁住多个用户)

 

使用密钥和直接使用用户密码的区别:用户密码时明文,网络劫取可以直接获取密码,而密钥网络劫取后获取的时乱码,因此更安全

 

 

关于ssh无密码登入实验(通过私钥登入)

1)生成公钥和私钥

 

(九)Linux基础之ssh_ssh_16

(九)Linux基础之ssh_远程_17


2使用key加密目标主机的目标用户,生成authorized_keys文件

(九)Linux基础之ssh_ssh_18 

这个过程就是把id_rsa.pub的内容给authorized_keys文件

(九)Linux基础之ssh_ssh_19 

命名为authorized_keys 是因为配置文件的设置:

(九)Linux基础之ssh_密钥_20 

 

(3)将私钥文件传送给client主机client用户的家目录.ssh文件下(/home/client/.ssh/)

(九)Linux基础之ssh_远程_21 

(4)在client通过ssh远程连接

(九)Linux基础之ssh_ssh_22 

有密码则需输入密码

(九)Linux基础之ssh_密钥_23 


v 登录遇到以下报错时

(九)Linux基础之ssh_ssh_24


删除报错文件错误部分

(九)Linux基础之ssh_ssh_25