本文主要是介绍8、Linux中的远程登陆服务—ssh,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Linux中的远程登陆服务
- 一、Openssh的功能
- 二、ssh
- 1、实验准备
- 2、基本用法
- 3、ssh常用参数
- 三、sshd key认证
- 1、认证类型
- 2、生成非对称加密密钥
- 3、对服务器加密
- 四、sshd 安全优化参数
一、Openssh的功能
1、sshd服务的用途:
作用:可以实现通过网络在远程主机中开启安全shell
的操作
Secure SHell | ssh | 客户端 |
Secure SHell daemon (守护进程) | sshd | 服务端 |
2、安装包
openssh-server
3、主配置文件
/etc/ssh/sshd_conf
4、默认端口
22
5、客户端命令
ssh
二、ssh
1、实验准备
创建两台虚拟机(westosa,westosb)
对两台虚拟机进行网络配置:
实验配置(见六、1实验环境)
配置完成如下:
westosa的ip
westosb的ip
2、基本用法
ssh [-l 远程主机用户] <ip|hostname>
ssh -l root 172.25.254.136
##通过ssh命令在136主机中以root身份开启远程shell
当收入<yes>
后
136主机会向当前主机发送身份公钥,并保存此公钥到~/.ssh/know_hosts
136主机持有私钥,当客户主机再次连接时会对客户主机进行身份验证
如果身份验证改变拒绝连接效果如下:
- 删除key,并重启服务
- 生成新的key(与之前key不一致)
- 重新连接 136主机
当连接因为认证问题被拒绝时解决方案:
vim ~/.ssh/know_hosts ##在此文件中删除报错提示相应的行即可
- 按照提示删除key
- 再次连接时重新获得公钥
3、ssh常用参数
-l | 指定登陆用户 |
-i | 指定私钥 |
-X | 开启图形 |
-f | 后台运行 |
-o | 指定连接参数 |
-t | 指定连接跳板 |
首次连接不需要输入yes
ssh -l root 172.25.254.136 -o "StrictHostKeyChecking=no"
指定连接跳板:236主机用36主机连接136主机
ssh -l root 172.25.254.36 -t ssh -l root 172.25.254.136
三、sshd key认证
1、认证类型
(1)对称加密:
加密和解密是同一串字符;容易泄漏;可暴力破解;容易遗忘
(2)非对称加密:
加密用公钥,解密用私钥;不会被盗用;攻击者无法通过无密钥方式登陆服务器
2、生成非对称加密密钥
方法1:交互式
ssh-keygen
方法2:非交互式
ssh-keygen -f /root/.ssh/id_rsa -P ""
3、对服务器加密
ssh-copy-id -i /root/.ssh/id_rsa.pub username@serverip
对136主机加密
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.136
再次连接136主机时不需要密码
四、sshd 安全优化参数
优化前设置:
setenforce 0 ##内核及加强防火墙修改
systemctl disable --now firewalld ##关闭防火墙
优化参数:
Port 2222 | 设定端口为2222 |
PermitRootLogin yes| no | 对超级用户登陆是否禁止 |
PasswordAuthentication yes| no | 是否开启原始密码认证方式 |
AllowUsers lee | 用户白名单(只允许用户) |
DenyUsers lee | 用户黑名单(禁止用户) |
vim /etc/ssh/sshd_config ##修改配置文件
systemctl restart sshd ##重启ssh服务
这篇关于8、Linux中的远程登陆服务—ssh的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!