SSH远程连接服务(五)

文章目录

    • 1. 端口号
    • 2. ssh与telnet区别
    • 3. telnet服务
    • 4. ssh相关命令
      • 4.1 ssh命令
      • 4.2 scp远程拷贝命令
      • 4.3 rz和sftp
    • 5. 在Linux中ssh的秘钥免密登录
    • 6. xshell中秘钥免密登录,限制root登录(安全优化)
    • 7. 自动化脚本
    • 8. 自我总结

1. 端口号

FTP         20/21          明文协议,文件传输协议,基于TCP
SSH         22          安全外壳协议,远程连接,加密
Telnet      23          明文协议,远程连接  
SMTP        25          简单邮件传输协议,基于 TCP  
DNS         53 
DHCP        67/68/546   动态主机设置协议,C(67),S(68),546(V6)
TFTP        69          简单文件传输协议,基于UDP  
HTTP        80          超文本传输协议  
SNMP        161/162     简单网络管理协议,基于UDP
HTTPS       443         超文本传输安全协议
Rsync       873
Redis		6379
Zabbix      10050 10051

2. ssh与telnet区别

SSH:   
   加密传输
   支持root登录
   远程连接服务
Telnet:  
   明文传输
   不支持root登录(需要创建普通用户)
   远程连接、路由器、交换机

3. telnet服务

安装和启动telnet服务

安装telnet服务:
[root@backup ~]# yum -y install telnet-server

启动telnet服务:
[root@backup ~]# systemctl start telnet.socket 

创建一个普通用户,用于测试

远程连接 telnet 不支持root 添加一个普通用户
[root@backup ~]# useradd oldboy
[root@backup ~]# echo 1|passwd --stdin oldboy

windows远程连接

telnet 10.0.0.41  
输入用户:oldboy
输入密码:1

4. ssh相关命令

4.1 ssh命令

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

用xshell远程登录方式

  第一种使用方式
  ssh 10.0.0.41(取决于当前执行此命令的用户)
  连接过程中 需要输入用户名和密码信息
  
  第二种使用方式(标准写法)
   ssh [email protected]
  连接过程中只需要密码

  第三种使用方式(带端口的方式 端口不是默认的22了)   
  修改ssh端口在尝试ssh远程连接   
  [root@backup ~]# systemctl restart sshd
  [root@backup ~]# grep Port  /etc/ssh/sshd_config 
                     #Port 22
                     Port 2222   
   ssh [email protected] 2222  
  第四种连接方式 
   指定端口方式远程连接服务器  Linux -----------> Linux服务器
   使用-p 参数指定端口号
   
   ssh [email protected]  

小提示:

windows—> Linux

ssh [email protected]        # 默认连接22端口
ssh [email protected] 2222   # 指定端口连接  

Linux----> Linux

ssh [email protected]        # 默认连接22端口
ssh -p2222 [email protected] # 指定端口连接

4.2 scp远程拷贝命令

scp是覆盖式、增量的,与rsync远程传输方式类似

(1) scp的一些参数

 -P 指定端口,默认22端口可不写
 -r 表示递归拷贝目录
 -p 表示在拷贝文件前后保持文件或目录属性不变
 -l 限制传输使用带宽(默认kb) /8 ->KB  /1024  ->MB   

(2)scp获取、下载

[root@backup ~]# scp [email protected]:/etc/exports ./

(3)scp推送、上传

[root@backup ~]# scp exports [email protected]:/tmp/

(4)限速上传的速度

带宽默认kb 80960kb➗8=10120KB➗1024=10MB
带宽为20Mb,下载速度为2.50MB/s

[root@backup ~]# scp -l 40960  1.txt [email protected]:/tmp  
[email protected]'s password: 
1.txt                                                                               100%  300MB   5.1MB/s   00:59   

小提示:
不管是上传文件还是目录都带上-r这样就不会错了

[root@backup ~]# scp -rp 1.txt [email protected]:/tmp

4.3 rz和sftp

rz 和 sftp
rz 拷贝文件效率高,不支持超过4个G以上的文件不支持断点续传
sftp  远程传输,特别适合拷贝大文件。
ssh提供的客户端命令:
	ssh   远程连接    (非常重要)
	scp   远程拷贝    (非常重要)   和  rsync的远程传输方式一模一样   
		(1)scp通过ssh协议加密方式进行文件或目录拷贝。
		(2)scp连接时的用户作为为拷贝文件或目录的权限。
		(3)scp支持数据推送和拉取,每次都是全量拷贝,效率较低。
	sftp  远程传输     (一般般)   Xftp   
	
	xftp工具里面使用的是sftp协议

5. 在Linux中ssh的秘钥免密登录

SSH远程连接服务(五)_第1张图片

(1)生成密钥对,公钥、私钥

[root@m01 ~]# ssh-keygen -C [email protected] (-C可不加)  
		Enter file in which to save the key (/root/.ssh/id_rsa):按回车  ---存放在当前用户的.ssh/id_rsa
		Enter passphrase (empty for no passphrase):按回车  ---问是否给当前密钥设置密码,不需要  
		
-t是指定类型(可以省略不写)   -C是说明信息

(2)将公钥推送到你需要连接的主机,第一次需要输入对端主机的密码

[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
这个-i 选项值得是你所要推送公钥的位置在哪里,推动到对方的/root/.ssh/authorized.keys这个文件里面

(3)通过ssh命令测试连接是否需要密码

[root@m01 ~]# ssh 172.16.1.31
	Last login: Wed Jan  9 10:39:16 2019 from 172.16.1.61  
[root@nfs ~]#      
切换用户成功了 

SSH远程连接服务(五)_第2张图片

6. xshell中秘钥免密登录,限制root登录(安全优化)

SSH远程连接服务(五)_第3张图片

SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。

1.更改远程连接登陆的端口		6666
2.禁止ROOT管理员直接登录		
3.密码认证方式改为密钥认证
4.重要服务不使用公网IP地址
5.使用防火墙限制来源IP地址

以上的安全策略需要修改服务端的ssh的配置文件/etc/ssh/sshd_config ,把上面的内容写在配置文件的上面,写在下面不会生效。

Port 6666                       # 变更SSH服务远程连接端口√
PermitRootLogin         no      # 禁止root用户直接远程登录√
PasswordAuthentication  no      # 禁止使用密码直接远程登录√
UseDNS                  no      # 禁止ssh进行dns反向解析,影响ssh连接效率参数√
GSSAPIAuthentication    no      # 禁止GSS认证,减少连接时产生的延迟√

(1)禁止root用户远程登录,只要在配置文件中配置了,所以要创建普通用户,把xshell生成的公钥,放在oldboy用户的.ssh/authorized_keys中,注意.ssh的权限是700,authorized的权限是600。
注意: 在公司中root在/etc/sudoers 或者执行命令visudo在配置文件中书写
oldboy ALL=(ALL) NOPASSWD:/bin/su 用xhell中秘钥的形式登上普通用户后,执行sudo su - 直接切换到root
SSH远程连接服务(五)_第4张图片
SSH远程连接服务(五)_第5张图片

创建好之后,可以在这里查看

SSH远程连接服务(五)_第6张图片

(2)xhell生成的公钥粘贴复制到/home/oldboy/.ssh/authorized_keys

(3) 这样跳板机用oldboy通过公钥的方式进行连接,因为在/etc/ssh/sshd_conf配置文件中设置了不允许密码登录,禁止root不能远程登录。这是用秘钥的方式登录到普通用户的oldboy,直接用sudo su - 的方式直接登录

7. 自动化脚本


监听地址: 监听本地的哪个IP  我的服务要运行在哪个IP地址上
0.0.0.0 表示网卡的所有地址 127.0.0.1 172.16.1.41 10.0.0.41


yum -y install expect
[root@backup ~]# cat test.ex 
#!/usr/bin/expect
set ip 10.0.0.31
set pass 1
set timeout 30
spawn ssh root@$ip
expect {
        "(yes/no)" {send "yes\r"; exp_continue}
        "password:" {send "$pass\r"}
}
interact



yum -y install sshpass
sshpass -p 123456 ssh [email protected]

8. 自我总结

(1)echo nneettssttaatt --llnnttpp|sed -r ‘s#(.)(.)#\1#g’ 去重

(2)网络设备用telnet不用加密,网络的设备都是内部网络调试的。 xshell工具还是调用底层的ssh命令 ssh 10.0.0.41 22

(3) 在Linux的客户端使用命令:ssh 172.16.1.31 远程登录的用户是谁,取决于当前用户是谁
建议还是加上ssh [email protected]

(4)对外访问的服务器尽量改ssh的端口号,内网的为了方便
连接不用修改ssh的端口号

(5) 小文件的传输非常影响带宽,建立了很多次的tcp连接,所以
把小文件打包压缩,在进行传输就非常快了

(6)scp -r 选项是用来传输目录的,不管是不是加上-r选项,这样就不会报错。csp连接时需要知道用户的密码,不安全,拷贝的
效率非常低

(7)修改网卡小技巧 sed ‘s#200#61#g’ /etc/sysconfig/network-scripts/ifcfg-eth[01]
先看一下,然后再加上选项-i

(8)ifdown eth1 && ifup eth1 重启网卡

(9)ssh [email protected]
再ssh配置文件中(/etc/ssh/sshd_config),如果禁止root登录,那么登陆完普通用户之后,能su - root吗???可以

(10)写配置文件的最上面,这样才能生效
改完端口之后 10.0.0.61 6666 再window不用加-p参数!!!! 再xshell中需要使用-p指定端口号,如果不写则默认是22端口

(11).ssh的服务权限是700 ,这样才能正常连接免密,authorized.keys的文件权限是600

你可能感兴趣的:(Integrated,architecture,ssh,服务器,linux)