文章目录
1. Openssh介绍
OpenSSH 是 SSH (Secure SHell远程连接) 协议的免费开源软件 。
软件安装名称——Openssh-server
配置文件——/etc/ssh/sshd_conf
默认端口——22(接口是用来区分Ip地址开启的不同)
客户端命令——ssh
rpm -qa | grep epenssh
查看系统中是否装有openssh-server
2. ssh命令的用法
参数 | 解释 |
---|---|
ssh 用户名@ip | 连接指定登录用户 |
ssh -l | 连接指定登录用户 |
ssh -i | 指定密钥 |
ssh -X | 开启图形 |
ssh -p | 指定端口 |
ssh -f | 后台运行 |
ssh -o | 指定连接参数 |
ssh -t | 指定连接跳板 |
实验环境:
node1:192.168.43.81
node2:192.168.43.82
node3:192.168.43.83
两台主机进行远程连接:
注意:
在实验开始前,要保持实验环境的纯净需要删除~/.ssh文件,因为在ssh命令远程连接时yes后建立认证文件,会自动生成~/.ssh/known_hosts记录文件,而两次ssh所生成的.ssh文件内容是不同的。
ssh -l root ip
ssh root@ip
注意:
第一次远程连接时,需要建立认证的文件,会询问是否建立,输入ye建立后需要输入连接主机的密码,会生成~/.ssh
目录,再次连接时,已经建立认证文件而不会询问。
w 查看是否有主机登录连接
w -i 查看从哪里的主机登录连接
ssh -X 开启图形
ssh命令默认文本连接,不开启图形
ssh -p 指定端口
-
ssh -f 后台运行
不占用终端
-
ssh -o 指定连接参数(参数个数为1)
StrictHostKeyChecking=no(首次登录时不会再询问是否建立认证机制)
ssh -t 指定连接跳板
eg:ssh -t [email protected] [email protected]
此时用w -i
查询时发现连接端为83而不是81
3. Openssh服务的key认证
3.1 Openssh的认证方式
1.对称加密
加密和解密是同一串字符容易泄漏 、可暴力破解 、容易遗忘
2.非对称加密
加密用公钥,解密用私钥
不会被盗用 、攻击者无法通过无密钥方式登陆服务器
3.2 ssh key认证生成非对称加密密钥
在node1上:
ssh-keygen 生成密钥
cd .ssh/
ls
ssh-copy-id -i id_rsa.pub [email protected] 将公钥传输给node2
ssh [email protected] 可以直接登陆连接到82
3.3 sshd安全优化参数详解
实验环境:
setenforce 0
getenforce ##disabled/permissive
systemctl disable --now firewalld
systemctl status firewalld
- 关闭服务器中密码登陆配置,防止其他用户暴力破解密码登陆
vim /etc/ssh/sshd_config
PasswordAuthentication no #有密钥以外的其他用户主机无法开启原始密码登陆
systemctl restart sshd
83不含有密钥,登陆81会被拒绝,没有输密码的权力。
- 修改端口
node1:
vim /etc/ssh/sshd_config
17 Port 22 ---> 2222
systemctl restart sshd
node2:
ssh [email protected]
#ssh: connect to host 172.25.254.128 port 22: Connection refused
ssh [email protected] -p 2222 #指定端口
#[email protected]'s password:
- 设定超级用户能否登录
PermitRootLogin no ##root用户被拒绝登录
-
黑名单
DenyUsers pika ##pika用户被拒绝登录
-
白名单
AllowUsers pika ##只允许pika用户登陆