#### 一.Openssh的功能 ####
#1.sshd服务的用途#
#作用:可以实现通过网络在远程主机中开启安全shell的操作
Secure SHell Secure SHell daemon | ===>ssh ===>sshd | ##客户端 ##服务端 |
#2.安装包#
openssh-server
#3.主配置文件#
/etc/ssh/sshd_conf
#4.默认端口#
22
#5.客户端命令#
ssh
#### 二.ssh ####
列出所有端口。
在服务端手动使秘钥发生变化,那么之前在连接服务主机客户端接收的key就和当前新生成的key冲突了
客户端操作,当前客户端持有的公钥在服务器中已经改变,所以导致链接服务器被拒绝
更改/root/.ssh/known_hosts文件,在此文件中删除报错提示相应的行即可
删除完以后便可重新连接。
#ssh 常用参数# | |
-l -X | #指定登陆用户 #开启图形 |
-f | #后台运行 |
-o | #指定连接参数 # ssh -l root@172.25.254.x -o "StrictHostKeyChecking=no" 首次连接不许要输入yes |
-t | #指定连接跳板 # ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.105 |
#### 三.sshd key认证 ####
#1.认证类型#
1.对称加密
加密和解密是同一串字符,容易泄漏,可暴力破解,容易遗忘。
2.非对称加密
加密用公钥,解密用私钥,不会被盗用,攻击者无法通过无密钥方式登陆服务器。
#2.生成非对称加密密钥#
#方法1
$ ssh-keygen 交互式设置秘钥
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. | ##输入保存密钥文件(用默认) ##密钥密码(一般为空,如果输入要大于4位) ##确认密码 ##私钥 ##公钥(锁) |
#方法二
ssh-keygen -f /root/.ssh/id_rsa -P " " 非交互式直接生成秘钥
#3.对服务器加密#
ssh-copy-id -i /root/.ssh/id_rsa.pub username@serverip ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.100 |
#测试#
给测试主机分发秘钥。也就是给200主机id_rsa文件。
在100主机上,用scp /root/.ssh/id_rsa root@172.25.254.200:/mnt
之后查看200主机的/mnt如下
但是注意需要用 -i 指定秘钥位置,/mnt是不会被识别的,必须要指定。之后便可以免密登录。
如不想指定位置,免密登录,就需要放到当前用户下的.ssh目录中。此时将秘钥复制到/root/.ssh,便可以不指定目录免密登录。
#### 四.sshd 安全优化参数详解 ####
setenforce 0 设定系统中的selinux为警告模式,必须在sshd服务器上设定否则实验会导致sshd启动失败。
systemctl disable --now firewalld 关闭火墙,去除干扰
Port 2222 DenyUsers lee | #设定端口为2222 #用户黑名单 |
默认端口22
修改端口2222,每次跟改完后要reset sshd
查看出现2222端口
重新指定端口连接
关闭原始密码认证方式 ,修改后不能够密码登录
对超级用户登陆禁止,其他用户可登,超级用户不可
#用户黑名单,加入黑名单便不可连接
#用户白名单,加入白名单才可以连接,未加入便不可