1.什么是openssh
是一个提供远程访问控制的软件
2.如何实现远程访问
ssh 远程主机用户@远程主机ip地址##远程到IP的主机
##建立安全传输key
logout | exit | ctrl +d ###退出
[root@localhost ~]# vim /etc/motd ###设定登陆显示字符
v ssh远程实验过程
(1)在两台虚拟机上分别建立两个新用户client,westos,设定它们的密码,并logout当前用户登陆。
第一次进行远程登陆的时候会显示以下信息,再次登入则不再显示,只需要直接键入密码即可登入。
此信息存入在家目录的.ssh目录下的known_hosts中(/home/client/.ssh/known_hosts),删除此文件后,再次登入则将会再次显示信息
(2)登入后,会进入该用户的家目录,可对另一台电脑进行远程控制。
例如,进入桌面,建立文件
(3)删除建立的文件,退出登录
(4)用一条命令远程登入并完成操作(建立文件)
ssh westos@172.25.254.115 touch /home/westos/Desktop/file{1..10}
(5)用一条命令远程登入并打开火狐
错误!
加上参数 -X(大写的X)
ssh -X westos@westos@172.25.254.115 firefox
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##从新加载配置
v 关于配置的简单实验
一、PermitRootLogin的修改
(1)在server上更改sshd服务的配置文件/etc/ssh/sshd_config
vim /etc/ssh/sshd_config
去#改为no
(2)systemctl restart sshd 更新配置
在client虚拟机不能远程此主机的root用户
二、PasswordAuthentication的修改
(1)在server上更改sshd服务的配置文件/etc/ssh/sshd_config
vim /etc/ssh/sshd_config
(2)systemctl restart sshd 更新配置
关闭密码登入,没有密钥不能远程登入
三、关于用户白名单
AllowUsers student westos##用户白名单,只允许在名单中出现的用户使用sshd服务
(1)vim /etc/ssh/sshd_config,添加AllowUsers westos
当设置AllowUsers westos,即只允许远程登入该IP的westos用户(不管PermitRootLogin是yes还是no,当白名单没有root,就不允许远程登入该主机的root用户,必须两个条件都满足才可以)【即优先级最高】
(2)在server上新建一个用户new,并设定密码,尝试远程以new用户登入该主机
失败!
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中,这个文件就是目标用户被加密的标识,文件内容位公钥内容。
v ssh-copy-id -i id_rsa.pub root@localhost
//给本地主机的指定用户上一把锁id_rsa.pub(一个锁可以同时锁住多个用户)
v 使用密钥和直接使用用户密码的区别:用户密码时明文,网络劫取可以直接获取密码,而密钥网络劫取后获取的时乱码,因此更安全
v 关于ssh无密码登入实验(通过私钥登入)
(1)生成公钥和私钥
(2)使用key加密目标主机的目标用户,生成authorized_keys文件
这个过程就是把id_rsa.pub的内容给authorized_keys文件
命名为authorized_keys 是因为配置文件的设置:
(3)将私钥文件传送给client主机client用户的家目录.ssh文件下(/home/client/.ssh/)
(4)在client通过ssh远程连接
有密码则需输入密码
v 登录遇到以下报错时
删除报错文件错误部分