ssh服务
1.ssh是一个远程连接服务,运行在Linux服务器的后台,默认监听22端口,通常情况下Linux都会启动该服务。
ssh客户端工具:
ssh 命令 ( 通过ssh协议连接ssh服务端 )
ssh root@192.168.10.180
ssh 以哪个用户的身份登陆@IP地址
scp 命令 ( 远程拷贝命令 全量拷贝,基础ssh协议的,意味着更安全。)
推: scp /tmp/test.txt root@192.168.10.180:/tmp
拉:scp root@192.168.10.180:/tmp/test.txt /mnt/
-rp
-r递归拷贝,简单来说就是拷贝目录
-p保持属性。
-l限速传输
限速:scp -rl 20000 /tmp/data root@192.168.10.180:/tmp
限制每秒传输20000字节,也就约等于每秒传输2M的数据
linux基于秘钥的方式连接服务器
基于秘钥的方式
将10.0.0.10 作为登陆各个节点的服务器
将10.0.0.20 10.0.0.30 作为被登陆节点
实现10.0.0.10 登陆 20 或者 30 免密登陆
1.10.0.0.10 生成一对秘钥对 (公钥和私钥) 将公钥发送给 20 或者 30 (刚开始需要输入 20 或 30的密码) ssh-keygen 会在/.ssh/目录下生成公钥和私钥
2.发送10的公钥到各个服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.20
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.30
3.10通过免密登陆20或30
ssh root@10.0.0.20
ssh root@10.0.0.30
macOS生成公钥
和Linux是一样的,下发公钥给需要登陆的服务器和Linux操作也一样,不变。
Windows生成公钥
1.在PowerShell中执行以下指令
ssh-keygen -t rsa
#该命令产生的密钥是通过rsa算法加密生成的
#也可以用-C参数,指定注释
2.生成过程中默认回车即可
3.生成的公钥/私钥,会保存在(C:\Users\xxx/.ssh/)路径下
其中id_rsa.pub是公钥,id_rsa是私钥
4.将公钥拷贝到所要免密登陆的服务器上
scp C:\Users\xxx\.ssh/id_rsa.pub root@192.168.51.xxx:~/.ssh
服务端
5.修改ssh配置文件"/etc/ssh/sshd_config"的下列内容,将以下内容的注释去掉
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
6.将刚才传过来的公钥文件的内容追加到authorized_keys文件
cat id_rsa.pub >> ~/.ssh/authorized_keys
7.服务端重启SSH服务
service sshd restart
8.再次连接时候就不需要输入密码了
6.基于SSH的跳板机,仅支持所谓的跳板连接的功能。
1.不会记录与后端多少台主机进行免密。
2.没有行为审计。
3.没有录屏回放。
自研的跳板机、开源、jumpserver、teleport、阿里云跳板机
前提:我们必须先进行免密。
ssh安全
不是所有机器都需要配置,仅针对个别主机(使用公网IP的主机)。 其余所有主机都是内网,无需做相应的操作
1、SSH服务端端口 将默认22 修改为 6666 *****
vim /etc/ssh/sshd_config
Port 6666
2 、禁止root直接登陆(禁止后可以选择使用普通用户登陆,然后su -切换到root)
PermitRootLogin no
配置修改后记得重启SSH服务
systemctl restart sshd
3 、使用防火墙限制来源IP******
可以使用 Firewalld、IPtables、 阿里云安全组
物理机: firewalld、iptables、硬件防火墙
云主机:云 上面 的安全产品
4、重要服务不使用公网IP
5、密码认证改为密钥认证
|