ssh 远程连接详解--(linux运维09)
ssh远程连接1. 概念介绍2.ssh 原理2.2 基于秘钥的连接过程3. 基于秘钥连接的部署过程3.1配置3.2 多台服务器的配置(脚本)3.2.1 几台主机的ip已知4. ssh服务配置文件1. 概念介绍1.ssh 安全的远程连接 数据信息是加密的 默认可以root用户连接 默认端口 222.telent不安全的远程连接,数据信息是明文的 默认端口23shell每次连接登录到一个llinux中
ssh远程连接
1. 概念介绍
1.ssh 安全的远程连接 数据信息是加密的 默认可以root用户连接 默认端口 22
2.telent 不安全的远程连接,数据信息是明文的 默认端口23
shell 每次连接登录到一个llinux中就是一个shell
2.ssh 原理
私钥:钥匙
公钥:锁头
1.客户端 执行远程连接命令
2.客户端服务端 建立三次握手的过程
3.服务端 让客户端进行确认是否接收到服务端的公钥
4.客户端 进行公钥的确认
5.服务端 让客户端确认登录的用户
6.客户端 进行密码信息的确认
7.客户端 服务端 远程连接成功
私钥和公钥的作用:对数据信息进行加密处理,进行用户身份的验证
ssh 远程连接的方式
a 基于口令的远程连接方式 比较麻烦 来接不太安全
b 基于秘钥的方式进行连接 安全方便
2.2 基于秘钥的连接过程
1. 客户端(管理端) 执行命令创建秘钥对
2. 客户端(管理端) 建立远程连接(口令),发送公钥信息
3. 客户端(管理端) 再次建立远程连接
4. 服务端(被管理端) 发送公钥质询信息(你要是能打开我的锁头吗)
5. 客户端(管理端) 处理公钥质询信息(钥匙将锁头打开),将质询结果返回给服务端
6. 服务端(被管理端) 接收到质询结果,建立好远程连接
3. 基于秘钥连接的部署过程
3.1配置
1.管理端创建密钥对信息
ssh-keygen -t dsa
2.管理端将公钥进行分发
ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.31
3.远程连接测试
ssh 172.1.31
3.2 多台服务器的配置(脚本)
3.2.1 几台主机的ip已知
ssh-copy-id -i /root/.ssh/id_pub.dsa root@172.16.1.$ip
假若这种方式就会出现交互式的:需要输入密码才能发送
还要确认yes 或 no
端口号问题
1.安装 sshpass
yum -y install sshpass
2.解决免交互模式
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa root@172.16.1.$ip
3.端口号问题 -p
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa -p 22 root@172.16.1.$ip
4.yes提示
man ssh
/-o
StrictHostKeyChecking
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa -p 22 root@172.16.1.$ip "-o StrictHostKeyChecking=no"
5.完整的脚本(默认的端口是22 不是则需要加上-p 端口号)
#!/bin/bash
for ip in 31 41
do
echo "====================start fenfa 172.16.1.$ip===================="
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.$ip "-o StrictHostKeyChecking=no" &>/dev/null
echo "=================host 172.16.1.$ip success!!!!=================="
echo "==================== end ===================="
done
脚本的执行 (sh 文件名称)
sh fenfa_id.sh
检查是否成功
vim check_id.sh
#!/bin/bash
for ip in 31 41
do
echo "====================check 172.16.1.$ip===================="
ssh 172.16.1.$ip hostname
echo "==================== end ===================="
done
6.假若有很多台服务器,并且ip地址没有规律(默认的端口是22 不是则需要加上-p 端口号)
创建一个文件
touch ip.txt
172.16.1.41
172.16.1.32
172.16.1.52
172.16.1.98
172.16.1.252
172.16.1.23
脚本:
#!/bin/bash
for ip in `cat /server/scripts/ip.txt`
do
echo "====================start fenfa $ip===================="
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@$ip "-o StrictHostKeyChecking=no" &>/dev/null
echo "=================host $ip success!!!!=================="
echo "==================== end ===================="
done
4. ssh服务配置文件
4.1文件的一些中安要参数
/etc/ssh/sshd_config
port 22 端口号
ListenAddress 0.0.0.0 监听地址,能接受的远程访问请求
指定的箭筒地址只能是本地网卡上有的地址
PermitEmptyPasswords no 允许远程用户使用空密码进行连接,默认不允许
PermitRootLogin yes 不允许root用户进行远程连接
GSSAPIAuthentication no --- 是否开启GSSAPI认证功能 不用的时候关闭
UseDNS no --- 是否开启反向DNS解析功能 建议进行关闭
4.2远程服务防范入侵案列
1.使用秘钥登录,怒用密码登录
2.牤牛阵法
a 防火墙粉笔ssh
b 开启ssh只监听内网ip
3.尽量不给服务器的外网ip
4. 一个服务器的软甲安装最小化
5. 给系统的重要文件一个指纹,监控指纹即可 md5sum
6. 给他上锁 chattr +i
4.3 sftp参数详解
ls 查看远程ftp服务器信息
cd --- 查看远程ftp服务器信息
lls 查看本地ftp客户端信息
lcd --- 查看本地ftp客户端信息
get --- 下载信息
put --- 上传信息
help --- 查看命令帮助
bye --- 退出ftp连接
更多推荐
所有评论(0)