ssh连接服务相关基础知识
第1章 SSH基本概述
SSH是Secure Shell Protocol的简写,在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。
第2章 SSH远程服务主要功能
1. 提供远程连接服务器的服务
2. 对传输的数据进行加密
第3章 ssh与telnet区别
ssh是一个加密的远程传输协议。(进入了密封的隧道)
telnet是一个远程传输协议。(明文的传输)
ssh服务是加密服务协议,telnet服务是非加密服务协议
ssh服务默认支持root用户登录,Telnet默认不支持root用户登录
第4章 远程连接方式有哪些
ssh属于密文连接方式 监听在本地22/tcp端口(Linux、Unix、ubuntu、)
telnet属于明文连接方式 监听在本地23/tcp端口(路由器、交换机、防火墙)
第5章 安装telnet服务,然后使用root登录测试
[root@web01 ~]# yum install telnet-server -y
[root@web01 ~]# systemctl start telnet.socket
使用xshell的新建标签,输入如下指令[登录不上]
[e:\~]$ telnet 10.0.0.7
Kernel 3.10.0-862.el7.x86_64 on an x86_64
web01 login: root
Password:
Login incorrect
创建一个普通用户,再次使用telnet登录测试
[root@web01 ~]# useradd od
[root@web01 ~]# echo "1" | passwd --stdin od
[e:\~]$ telnet 10.0.0.7
web01 login: od
Password:
Last login: Mon Sep 10 09:57:39 from ::ffff:10.0.0.
[od@web01 ~]$
第六章 SSH远程连接不上,怎么办
服务端
22端口是否打开(telnet、nmap检测)
防火墙是否允许能连接22端口
客户端
1.ping 127.0.0.1 检测TCP/IP协议栈(检查网卡是否故障)
2.ping 172.16.1.31 排查是否是交换机故障
3.ping 网关地址 数据包是否能抵达路由器
4.ping 域名 检查DNS是否异常
第7章 SSH相关命令
SSH服务是一个C/S架构,有服务端,就有客户端
Windows客户端(Xshell、CRT)
Linux客户端(ssh命令)
[root@backup ~]# yum provides `which ssh`
[root@backup ~]# rpm -ql openssh-server
/etc/ssh/sshd_config --- ssh服务配置文件
/usr/sbin/sshd --- ssh服务进程启动命令
[root@backup ~]# rpm -ql openssh-clients
/usr/bin/scp --- 远程拷贝命令
/usr/bin/sftp --- 远程文件传输命令
/usr/bin/ssh --- 远程连接登录命令
/usr/bin/ssh-copy-id --- 远程分发公钥命令
第8章 SCP远程拷贝 -l限速
仅支持全量拷贝,覆盖式,效率低,基于ssh协议传输的数据(安全)
8.1 推
[root@nfs ~]# scp -rp nfs-file [email protected]:/tmp
8.2 拉
[root@nfs ~]# scp -rp [email protected]:/tmp/yum.log /tmp/
第9章 sftp–>XFTP
1. 支持批量上传文件
2. 支持单个文件超过4G
3. 支持断点续传
第10章 ssh远程登录服务器命令
ssh -p22 [email protected] [命令]
10.1 SSH连接远程主机命令的基本语法
# ssh 命令
# -p(小写), 用于指定远程主机端口,默认22端口可省略
# oldboy@remotehost
# "@"前面为用户名,如果用当前用户连接,可以不指定用户
# "@"后面为要连接的服务器的IP
第11章 scp复制数据至远程主机命令(全量复制)
# SSH连接远程主机命令的基本语法;
# scp 命令
# -P(大写) 指定端口,默认22端口可不写
# -r 表示递归拷贝目录
# -p 表示在拷贝文件前后保持文件或目录属性不变
# -l 限制传输使用带宽(默认kb)
11.1 推:PUSH,上传
# scp -P22 -rp /tmp/oldboy [email protected]:/tmp
# /tmp/oldboy为本地的目录。
# “@”前为用户名
# “@”后为要连接的服务器的IP。
# IP后的:/tmp目录,为远端的目标目录。
# 说明: 以上命令作用是把本地/tmp/oldboy推送至远端服务器10.0.0.150的/tmp目录
11.2 拉:PULL,下载
# scp -P22 -rp [email protected]:/tmp/oldboy /opt/
# 还可以将远端目录或文件拉取至本地
11.3 结论:
1. scp通过加密进行远程拷贝文件或目录的命令。
2. scp拷贝权限为连接的用户对应的权限。
3. scp支持数据的推送和拉取,但每次都是全量拷贝,效率低下。
第12章 SSH连接方式
12.1 账户和密码
不方便
容易被攻击
12.2 秘钥的登录方式
你需要登录哪台服务器,就将自己的公钥推送至对应的服务器即可
12.2.1 创建密钥对
[root@m01 ~]# ssh-keygen -t rsa -C xuliangwei.com #一路回车即可
[root@m01 ~]# ls ~/.ssh/
id_rsa(钥匙) id_rsa.pub(锁头)
12.2.2 发送密钥给需要登录的服务器即可
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Manager能通过密钥的方式连接 nfs和backup以及web
//命令示例: ssh-copy-id [-i [identity_file]] [user@]machine
ssh-copy-id //命令
-i //指定下发公钥的路径
[user@] //以什么用户身份进行公钥分发(root),如果不输入,表示以当前系统用户身份分发公钥
machine //下发公钥至那台服务器, 填写远程主机IP地址
第13章 Linux实现秘钥管理
ssh-keygen
第14章 Window实现秘钥登录服务器
1. Xshell工具->新建密钥生成工具->猛击下一步
2. 连接服务器,在当前用户的家目录创建.ssh目录(权限700)
3. 在.ssh目录新建authorized_keys,权限是600
4. 找到xshell里面工具-》用户秘钥管理者-》选中对应的秘钥-》属性-》公钥-》复制
5. 将复制好的公钥粘贴至 ~/.ssh/authorized_keys中 ,保存,然后测试
第15章 SSH远程服务访问控制手段
1. 更改SSH服务远程登录端口(一般)
2. 更改SSH服务监听本地内网IP(不重要)
3. 更改SSH服务禁止ROOT管理员登录(重要)
4. 更改SSH服务密码登录认证为密钥登录(重要)
5. 重要服务器都不使用公网IP地址(重要)
6. 使用防火墙限制来源IP地址(一般)
15.1.SSH服务登录防护手段配置文件/etc/ssh/sshd_config
Port 6666 # 变更SSH服务远程连接端口
ListenAddress 10.0.0.61 # 绑定本地内网地址
PermitRootLogin # 是否允许root用户远程登录
PasswordAuthentication # 是否允许使用密码登录
UseDNS # 是否进行dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication # 是否进行认证,影响ssh连接效率参数
[root@m01 ~]# /etc/ssh/sshd_config
###SSH###
Port 6666
ListenAddress 10.0.0.61
PasswordAuthentication no
#PermitRootLogin no
GSSAPIAuthentication no
UseDNS no
###END###
[root@m01 ~]# sytemctl restart sshd
测试
[root@backup ~]# ssh '[email protected]'
ssh: connect to host 172.16.1.61 port 22: Connection refused
[root@backup ~]# ssh '[email protected]' -p6666
ssh: connect to host 172.16.1.61 port 6666: Connection refused
第16章SSH练习案例
2.解法
1.先生成密钥对,分别在NFS和Backup上执行(-P指定密码 -f指定存放的位置)
[root@backup ~]# ssh-keygen -P "" -f ~/.ssh/id_rsa
[root@nfs ~]# ssh-keygen -P "" -f ~/.ssh/id_rsa
2.推送nfs和backup的公钥至Manager(执行如下指令即可)
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
3.解法
正常推送文件
[root@m01 ~]# scp file [email protected]:/root file 100% 0 0.0KB/s 00:00
[root@m01 ~]# scp file [email protected]:/root file 100% 0 0.0KB/s 00:00
不跟任何参数无法推送目录
[root@m01 ~]# mkdir dir
[root@m01 ~]# scp dir [email protected]:/root dir: not a regular file
加参数后
[root@m01 ~]# scp -rp dir [email protected]:/root
[root@m01 ~]# mv file dir
[root@m01 ~]# scp -rp dir [email protected]:/root file 100% 0 0.0KB/s 00:00
4.解法(批量)
[ $# -ne 1 ] && echo "Please Command" && exit 1
for i in 31 41
do
echo "##############This is 172.16.1.$i##############"
ssh [email protected].$i "$1"
done
总结
ssh密钥登录
ssh-keygen 生成密钥
ssh-copy-id 推送公钥
ssh 远程连接
scp 远程拷贝