ssh连接服务相关基础知识

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         远程拷贝

你可能感兴趣的:(技术分享)