20、Linux-ssh远程连接管理

1.ssh概述

1.什么是ssh

SSH是安全的加密协议,用于远程连接linux服务器。

2.ssh服务的主要功能

1.提供远程链接服务器的功能
2.对远程链接传输的数据进行加密

3.ssh与telnet的区别
服务链接方式 服务数据传输 服务监听端口 服务登录用户
ssh 加密 22 默认支持root用户登录
telnet 明文 23 不支持root用户登录

2.ssh客户端命令

ssh客户端包含ssh|slogin远程登录、scp远程拷贝、sftp文件传输、ssh-copy-di密钥分发等应用程序

1.ssh远程登录服务器命令示例
ssh -p22 -o StrictHostKeyChecking=no root@10.0.0.61
-o StrictHostKeyChecking=no连接的时候不验证主机密钥(后面用于批量分发公钥)
-p 指定远程连接主机的端口,默认22端口
root@10.0.0.61中@前面为用户名,后面为远程服务器的ip
2.scp复制数据至远程主机命令(全量复制)
-p 指定端口,默认22端口可以不写
-r 递归拷贝目录
-p 保持拷贝文件前后属性不变
-l 限制传输使用的带宽(默认Kb)
推:将本地/tmp/hosts 推送至远端服务器10.0.0.61的/tmp目录
[root@m01 ~]# scp -p22 -rp /tmp/hosts root@10.0.0.61:/tmp

拉:将远程10.0.0.61服务器的/tmp/hosts文件拉到本地/opt目录下
[root@m01 ~]# scp -p22 -rp  root@10.0.0.61:/tmp/hosts /opt
3.sftp命令
sftp   -o Port=22  172.16.1.41
##交互式
#sftp 172.16.1.41
put
get
ls
lls
##非交互式
[root@m01 ~]# cat upload.ftp 
put /etc/hosts   /tmp
put -r /etc     /opt
get /etc/hostname /root
sftp -b upload.ftp   172.16.1.41

3.ssh验证方式

1.基于账号密码远程登录
知道服务器的IP端口,账号密码,即可通过ssh客户端命令登录远程主机
##交互式 
ssh -p22 root@10.0.0.41
root@10.0.0.41 password:
##非交互式
sshpass -p1 ssh -p22 root@10.0.0.41
2.基于密钥的远程登录

默认情况下,通过ssh客户端命令登录远程服务器需要提供账号密码,但为了降低密码泄露的几率和提高登录方便性,建议使用密钥验证方式。

1.在A上生成非对称密钥,使用-t指定密钥类型,-C指定用户邮箱
[root@m01 ~]# ssh-keygen -t rsa -C m01@10.0.0.41
默认回车即可
非交互式生成密钥
[root@m01 ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ""
2.将A上的公钥推送给B
[root@m01 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 10.0.0.98
非交互推送公钥
[root@m01 ~]# sshpass -p1 ssh-copy-id -i -o StrictHostKeyChecking=no /root/.ssh/id_rsa.pub 10.0.0.98
3.批量分发秘钥脚本思路
[root@m01 ~]# cat /server/scripts/fenfa.sh
#!/bin/bash
#create key
ssh-keygen -t rsa -f /root/.ssh/id_rsa   -P ''
#fenfa pub key
for ip  in {7,31,41}
do
   sshpass -p1 ssh-copy-id -i /root/.ssh/id_rsa.pub  -o StrictHostKeyChecking=no  -p22 172.16.1.$ip
done
4.批量测试是否分发成功脚本思路
[root@m01 ~]# cat /server/scripts/check.sh 
#!/bin/bash
#fenfa pub key 
for ip  in {7,31,41}
do
    ssh  -o StrictHostKeyChecking=no  -p22 172.16.1.$ip
 $*
done

4.ssh安全优化

ssh作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。
1.更改远程连接登录的端口
2.禁止ROOT用户直接登录
3.密码认证的方式改为秘钥认证
4.重要服务不使用公网IP
5.使用防火墙限制来源IP

ssh服务登录需要进行如下配置调整

Port 5555     ### 变更ssh服务远程连接端口
PermitRootLogin    no  ### 禁止root用户直接登录
PasswordAuthentication  no   ### 禁止使用密码直接登录
UseDNS no   ### 禁止ssh进行dns反向解析,以提高ssh简介效率
GSSAPIAuthentication no ### 禁止GSS认证,减少连接延迟

原文参考:https://www.buyao007.icu/

posted @ 2022-06-01 23:57  kirin(麒麟)  阅读(704)  评论(0编辑  收藏  举报
Δ