1.ssh 安全的远程连接 数据信息是加密的 默认可以root用户连接 默认端口 22
2.telent 不安全的远程连接,数据信息是明文的 默认端口23
shell 每次连接登录到一个llinux中就是一个shell
私钥:钥匙
公钥:锁头
1.客户端 执行远程连接命令
2.客户端服务端 建立三次握手的过程
3.服务端 让客户端进行确认是否接收到服务端的公钥
4.客户端 进行公钥的确认
5.服务端 让客户端确认登录的用户
6.客户端 进行密码信息的确认
7.客户端 服务端 远程连接成功
私钥和公钥的作用:对数据信息进行加密处理,进行用户身份的验证
ssh 远程连接的方式
a 基于口令的远程连接方式 比较麻烦 来接不太安全
b 基于秘钥的方式进行连接 安全方便
1. 客户端(管理端) 执行命令创建秘钥对
2. 客户端(管理端) 建立远程连接(口令),发送公钥信息
3. 客户端(管理端) 再次建立远程连接
4. 服务端(被管理端) 发送公钥质询信息(你要是能打开我的锁头吗)
5. 客户端(管理端) 处理公钥质询信息(钥匙将锁头打开),将质询结果返回给服务端
6. 服务端(被管理端) 接收到质询结果,建立好远程连接
1.管理端创建密钥对信息
ssh-keygen -t dsa
2.管理端将公钥进行分发
ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]
3.远程连接测试
ssh 172.1.31
ssh-copy-id -i /root/.ssh/id_pub.dsa [email protected].$ip
假若这种方式就会出现交互式的:需要输入密码才能发送
还要确认yes 或 no
端口号问题
1.安装 sshpass
yum -y install sshpass
2.解决免交互模式
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa [email protected].$ip
3.端口号问题 -p
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa -p 22 [email protected].$ip
4.yes提示
man ssh
/-o
StrictHostKeyChecking
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa -p 22 [email protected].$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 [email protected].$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
/etc/ssh/sshd_config
port 22 端口号
ListenAddress 0.0.0.0 监听地址,能接受的远程访问请求
指定的箭筒地址只能是本地网卡上有的地址
PermitEmptyPasswords no 允许远程用户使用空密码进行连接,默认不允许
PermitRootLogin yes 不允许root用户进行远程连接
GSSAPIAuthentication no --- 是否开启GSSAPI认证功能 不用的时候关闭
UseDNS no --- 是否开启反向DNS解析功能 建议进行关闭
1.使用秘钥登录,怒用密码登录
2.牤牛阵法
a 防火墙粉笔ssh
b 开启ssh只监听内网ip
3.尽量不给服务器的外网ip
4. 一个服务器的软甲安装最小化
5. 给系统的重要文件一个指纹,监控指纹即可 md5sum
6. 给他上锁 chattr +i
ls 查看远程ftp服务器信息
cd --- 查看远程ftp服务器信息
lls 查看本地ftp客户端信息
lcd --- 查看本地ftp客户端信息
get --- 下载信息
put --- 上传信息
help --- 查看命令帮助
bye --- 退出ftp连接