一.Openssh的功能
sshd服务的用途
- 作用:可以实现通过网络在远程主机中开启安全shell的操作
- Secure SHell ===>ssh ##客户端
- Secure SHell daemon ===>sshd ##服务端
安装包 openssh - server
主配置文件 / etc / ssh / sshd_conf
默认端口 22
客户端命令 ssh
二.ssh
基本用法
ssh [ - l 远程主机用户 ] < ip | hostname >
ssh - l root 192.168.2.200
通过 ssh 命令在free2 主机中以 root 身份开启远程 shell
[root@free2 ~]# ssh - l root 192.168.2.200
The authenticity of host '192.168.2.200 (192.168.2.200)' can ' t be established.
ECDSA key fingerprint is SHA256 : 1uLJ3EuYzt16BrtDrGdbjOY6wxCZcfppTLSwTI3BuCs.
Are you sure you want to continue connecting (yes / no / [fingerprint])? yes # 身份证明生成过程确认
作用
当收入 < yes > 后
200主机会向当前主机发送身份公钥 , 并保存此公钥到 ~/ .ssh / know_hosts
200主机持有私钥当客户主机再次连接时会对客户主机进行身份验证
如果身份验证改变拒绝连接效果如下
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY !
Someone could be eavesdropping on you right now (man - in - the - middle attack) !
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256 : 1uLJ3EuYzt16BrtDrGdbjOY6wxCZcfppTLSwTI3BuCs.
Please contact your system administrator.
Add correct host key in / home / lee / .ssh / known_hosts to get rid of this message.
Offending ECDSA key in / home / lee / .ssh / known_hosts : 1
ECDSA host key for 192.168.2.200 has changed and you have requested strict checking.
Host key verification failed.
当连接因为认证问题被拒绝时解决方案
vim -rf ~/ .ssh / know_hosts ## 在此文件中删除报错提示相应的行即可
ssh 常用参数
-l ##指定登陆用户
-i ##指定私钥
-X ##开启图形
-f ##后台运行
-o ##指定连接参数
ssh -l [email protected] -o "StrictHostKeyChecking=no" 首次连接不许要输入yes
-t ##指定连接跳板
ssh -l root 192.168.2.100 -t ssh -l root 192.168.2.200
三.sshd key认证
认证类型
1. 对称加密
加密和解密是同一串字符
容易泄漏
可暴力破解
容易遗忘
2. 非对称加密
加密用公钥 , 解密用私钥
不会被盗用
攻击者无法通过无密钥方式登陆服务器
生成非对称加密密钥
方法 1
[root@free1 Desktop]# ssh-keygen
Generating public / private rsa key pair.
Enter file in which to save the key ( / root / .ssh / id_rsa) : ## 输入保存密钥文件
Enter passphrase (empty for no passphrase) : ##密钥密码
Enter same passphrase again : ##确认密码
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 :
SHA256:Dml0KdfKvk72cCh2xNr1o3dnnjBBkq5dfN1it7t+V1E root@free1
The key's randomart image is:
注意:以上输入密码时一般都点回车,可以免密,如果要输入密码必须大于四位数
方法2
$ssh - keygen - f / root / .ssh / id_rsa - P ""
对服务器加密
ssh - copy - id - i / root / .ssh / id_rsa.pub username @westos 对用户加密,登陆时用使用密钥登陆
ssh - copy - id - i / root / .ssh / id_rsa.pub root @192.168.2.200 对root加密,登陆时用使用密钥登陆
测试
ssh -l root 192.168.2.200 ## 登陆root 用户不需要输入密码
sshd 安全优化参数详解
setenforce 0
systemctl disable -- now firewalld
Port 2222 #设定端口为 2222
PermitRootLogin yes | no # 对超级用户登陆是否禁止
PasswordAuthentication yes|no #是否开启原始密码认证方式
AllowUsers lee #用户白名单
DenyUsers lee #用户黑名单