SSh远程管理
SSh远程管理
ssh服务的概述
什么是ssh
SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输,确保了数据传输安全。
ssh服务作用
1.提供远程连接服务器的服务
2.对传输的数据进行加密
ssh相关命令
SSH有客户端与服务端,我们将这种模式称为C/S架构,ssh客户端支持Windows、Linux、Mac等平台。
在ssh客户端中包含 ssh|slogin远程登陆、scp远程拷贝、sftp文件传输、ssh-copy-id秘钥分发等应用程序。
1.远程连接命令
ssh root@39.104.203.184 -p 52022
ssh:命令
root:要用哪个用户连接(远端服务器的系统用户)
@:分隔符
39.104.203.184:远端主机的IP
-p:指定ssh的终端
[root@m01 ~]# ssh root@10.0.0.7
Last login: Fri Jul 9 19:12:25 2021 from 10.0.0.61
[root@web01 ~]#
2.在远端机器上执行命令,不用连接过去
[root@m01 ~]# ssh root@10.0.0.7 'df -h'
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.4G 18G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@m01 ~]# ssh root@10.0.0.7 'free -m'
total used free shared buff/cache available
Mem: 972 91 763 7 116 737
Swap: 1023 0 1023
3.远程拷贝(全量)走的是ssh协议
[root@web02 ~]# scp -rp /var/www/html root@10.0.0.41:/tmp
[root@backup ~]# ll /tmp/
drwxr-xr-x 3 root root 106 Jul 9 02:12 html
-r:递归拷贝
-p:保持文件的时间属性
-P(大写):指定端口
-l:限速
## 总结
1.scp通过ssh协议加密方式进行文件或目录拷贝。
2.scp连接时的用户作为为拷贝文件或目录的权限。
3.scp支持数据推送和拉取,每次都是全量拷贝,效率较低
SSH验证方式
创建秘钥对
[root@m01 ~]# ssh-keygen
[root@m01 ~]# ll ~/.ssh/
## 私钥(钥匙)
-rw-------. 1 root root 1679 Jul 9 18:48 id_rsa
## 公钥(锁)
-rw-r--r--. 1 root root 390 Jul 9 18:48 id_rsa.pub
## 记录身份,第一次登陆客户端需密码,第二次登陆无需密码
-rw-r--r--. 1 root root 682 Jul 9 19:12 known_hosts
## 将公钥发送给被管理端
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.8
-i:指定下发公钥的路径
## 被管理端服务器公钥
[root@web02 ~]# ll /root/.ssh/
# 公钥
-rw------- 1 root root 390 Jul 9 19:11 authorized_keys
ssh-copy-id这个命令做了哪些事
# 1.在被管理端家目录创建了一个.ssh的隐藏目录
[root@web02 ~]# mkdir /root/.ssh
# 2.将.ssh目录权限改为700
[root@web02 ~]# chmod 700 .ssh/
# 3.创建公钥存放的文件
[root@web02 .ssh]# vim authorized_keyssh-rsa
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCngoqU5oUWIiJtqw1e/MUwDLB7c/Br5L6I2fy6ri1KZyw3OuBd4Lv+5v3yNRlLW3ic5k8eFsJQhe6TSUHCE2GvIZUa6QgVpVBIKPFPypOYuBtFa4mPKTlSpIXxXqmDhdataU2Heur4sYC5zkgreiRtqu4+VjYxJ0EacH7Y1clQpCtRNrTW+szMMhBTlOhh5cEh9s/y2HDzBwH2/rZ5trbMyVbmwrugjhsz5ZPUu203bMt9sqNX80gkdvtEBCsf16Tu6f8b4xsST/yZgLV13hYiVFkJB+ESGM0/CTr1uc1JUDuLEVIb3AmyYNAc2KtiGdmaadalAORL7H2P0+tQr/a1 root@m01
# 4.修改公钥存放文件的权限
[root@web02 .ssh]# chmod 600 ~/.ssh/authorized_keys
ssh安全优化
SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。
1.更改远程连接登陆的端口
2.禁止ROOT管理员直接登录
3.密码认证方式改为密钥认证
4.重要服务不使用公网IP地址
5.使用防火墙限制来源IP地址
修改配置文件
[root@m01 ~]# vim /etc/ssh/sshd_config
## 端口
17 Port 6666
## 允许root登录
38 PermitRootLogin no
## 允许密码登录
65 PasswordAuthentication no
## GSS接口认证 现在改动
79 GSSAPIAuthentication no
## 使用DNS的反向解析 现在改动
115 UseDNS no
## 重启ssh服务
[root@m01 ~]# systemctl restart sshd