SSH为Secure Shell的缩写,是应用层的安全协议。SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
客户端连接方式
ssh 用户名@ip #连接该ip地址指定的主机 无图形连接
ssh -X 用户名@ip # 带图形连接该ip地址指定的主机(cheese打开摄像头)
###第一次连接陌生主机是要建立认证文件,所以提示是否建立,输入yes, 文件名称~/.ssh/know_hoses
1 真机连接俩个虚拟机
1 查看真机的ip地址 ip addr show br0
虚拟机中设置主机ip
nm-connection-editor ——>打开设置界面
删除之前的网络ip 新建一个ip 172.25.254.102
ip addr show eth0 #查看eth0 ip地址
hostnamectl set-hostname 新名称 #在需要修改名名称的主机中使用该该令,对主机名称进行修改。
主机连接虚拟机操作
) 必须保证服务端的sshd服务进程开启,才能成功连接,要是该服务进程关闭,则无法连接。
3)当使用客户端主机成功连接服务端主机之后,所进行的所有操作都属于服务端主机,例如创建文件:
scp file 用户名@ip:dir #上传 将当前主机文件上传到指定ip主机的指定目录中
scp 用户名@ip:file dir #下载 将ip指定的主机中的指定文件file下载到当前主机dir目录中
五 sshd 的key认证 (以超级用户root进行说明)
服务器为了限制客户端对其的连接 ,可以增加sshd的key认证。
1 生成 认证 KEY #可以在任何主机上生成。
1.生成公钥私钥
ssh-keygen ##生成公钥私钥工具
ls /root/.ssh/
id_rsa ##私钥,就是钥匙
id_rsa.pub ##公钥,就是锁
2.添加key认证方式(服务端也就是被访问的一方)
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.254.102 ##被加密主机ip
3.分发钥匙给客户端(访问端)
scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
4.测试
ssh [email protected] ##通过id_rsa直接连接不用输入用户密码
ssh-copy-id -i /root/.ssh/id_ras.pub root@ip(服务器ip) #该ip为服务器ip设定限制访问的ip
远程主机(由上述ip决定)生成 root/ .ssh/authorized_keys文件。
使用key认证连接主机不需要输入密码
5 取消使用输入密码连接服务器主机连接方式。
需要对服务器远程主机中的 /etc/ssh/sshd_config 该文件进行修改 ,修改后需重新启动sshd服务才能生效。
重启服务:systemctl reload sshd
vim /etc/ssh/sshd_config #使用vim打开该文件进行修改
1修改该文件78行的 yes为 no 表示取消使用输入密码进行连接的这种方式。
更改默认登陆方式后没有密钥的主机无法登陆;有密钥的主机可以登陆。
如果将服务器主机 root/.ssh/authorized_keys 文件删除,则所有主机,都无法连接。需要再次连接,只需要再次在服务器中生成/root/.ssh/authorized_keys 文件即可。做到限制别人对自己的连接。
再次生成认证文件恢复 scp -p /root.ssh/id_rea.pub /root/.ssh/authorized_keeys
提升openssh的安全级别
1.openssh-server配置文件
vim /etc/ssh/sshd_config
78 PasswordAuthentication yes|no ##是否开启用户密码认证,yes为支持no为关闭
48 PermitRootLogin yes|no ##是否允许超级用户登录
49 AllowUsers 用户名字(白名单用户登陆)
##用户白名单,只有在名单出现的用户可以使用sshd建立shell
DenyUsers 用户名 ##用户黑名单(指定用户不能登陆)
注意 : 黑白用户名单不能同时添加使用时注释吊一个
vim /etc/hosts.deny sshd:ALL ##拒绝所有人连接接sshd服务
添加sshd登陆信息
vim /etc/motd ## 文件内容就是登陆后显示的信息
w #查看当前正在使用当前系统的用户`
w -i #查看当前时用该系统的来源ip
并且w 该命令查看的信息均存储在/var/run/utmp 中,如果对该文件内容进行删除,则不显示当前使用该系统的用户信息。
last 该命令查看的信息均存储在/var/log/wtmp 中,如果对该文件内容进行删除,则不显示成功登陆并退出的用户信息。
lastb该命令查看的信息均存储在/var/log/btmp 中,如果对该文件内容进行删除,则不显示试图登陆该系统但是没有成功的用户信息。