ssh服务

一、SSH服务

1、基础知识

1、什么是SSH
	
		SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。
	
	2、SSH和telnet的对比
	
		1、安装telnet(telnet是明文登录服务器的方式,不支持root用户登录)
		
			[root@localhost ~]# yum install telnet-*
			
		2、创建一个普通用户
		
			[root@localhost ~]# useradd test
			[root@localhost ~]# passwd test
		
		3、启动telnet服务
			[root@localhost ~]# systemctl start telnet.socket
		
		4、在windows上的xshell上使用telnet登录服务器
			[c:\~]$ telnet test@192.168.230.52
	
	3、SSH的相关命令
	
		ssh root@192.168.230.52
		
		ssh : 是链接的命令
		
		root : 登录的用户
		@    :分隔符,没有特殊含义
		192.168.230.52 : 登录的机器的IP
		
		-p : 指定端口号(ssh默认情况下是22端口)
		-o StrictHostKeyChecking=no   : 指定首次登录不提示,输入信息
		
		
#推送公钥到 172.16.1.7
[root@m01 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@172.16.1.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.1.7's password: 
 
Number of key(s) added: 1
 
Now try logging into the machine, with:   "ssh 'root@172.16.1.7'"
and check to make sure that only the key(s) you wanted were added.
 
[root@m01 ~]# 
 
#连接测试
[root@m01 ~]# ssh 172.16.1.7
Last login: Tue Nov 24 09:02:26 2020 from 10.0.0.1
[root@web01 ~]#

2、进阶部分

4、SSH的校验方式
		1、密码
		
			1.如果太难,会记不住
			2.如果太简单,容易破解
			3.每台服务器密码不一样
			4.密码是动态的
			5.密码三个月一修改
			6.密码错误三次锁定用户
			7.密码是没有规律的
		
		2、秘钥
		
			秘钥主要分为:公钥与私钥
			
			1、生成公钥与私钥
			
				[root@localhost .ssh]# ssh-keygen 
				
				# 公钥 与 私钥 是成对出现: cd /root/.ssh
				[root@localhost .ssh]# ll
				total 8
				-rw-------. 1 root root 1675 Oct 10 10:16 id_rsa	# 私钥
				-rw-r--r--. 1 root root  408 Oct 10 10:16 id_rsa.pub # 公钥
	
			2、使用公钥与私钥的方式去免密登录
			
				1、需要使用ssh-copy-id这个命令将公钥传输到对应的服务器上
					使用ssh-copy-id这个命令,会在对方服务器上生成一个认证文件(authorized_keys),主要用于保存公钥。也就是说要想使用秘钥进行免密登录,就必须将该机器上的公钥放至需要免密登录的机器的/root/.ssh/authorized_keys 文件中。
		
	5、SSH的免密

	
	6、SSH的安全优化
	
		1、修改默认的端口
		
			[root@localhost ~]# vim /etc/ssh/sshd_config 
			Port 7777
		
		2、禁止使用root用户登录
		
			[root@localhost ~]# vim /etc/ssh/sshd_config 
			PermitRootLogin no
		
		3、禁止使用密码登录
			[root@localhost ~]# vim /etc/ssh/sshd_config
			PasswordAuthentication no
		
		4、关闭DNS解析,有利于提高速度
			[root@localhost ~]# vim /etc/ssh/sshd_config
			UseDNS no
	
		5、使用防火墙限制来源IP地址(只允许192.168.230.61来登录)
		
			iptables -t filter -I INPUT -p tcp -s 192.168.230.61 --dport 7777 -j ACCEPT 
			iptables -t filter -I INPUT -p tcp -m iprange --src-range 192.168.230.1-192.168.230.254 --dport 7777 -j ACCEPT
			iptables -t filter -A INPUT -p tcp --dport 7777 -j DROP
	
	7、使用ssh协议的相关命令
		scp
			1、推数据
				将本机上的数据推送至远程
			
				scp init.sh root@192.168.230.52:/opt/			
			
			2、拉数据
				将远程机器上的数据下载到本机
				
				scp root@192.168.230.52:/root/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz  /opt/
		
			常用参数:
				-P:指定端口
			
				-r 表示递归拷贝目录
					[root@localhost ~]# scp -P 7777 -r linux root@192.168.230.52:/opt/
				
				-p 保持基本的属性不变
					[root@localhost ~]# scp -P 7777 -rp linux root@192.168.230.52:/opt/
					
				-l 限制带宽(1024kb = 1MB)
					[root@localhost ~]# scp -P 7777 -l 1024 mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz root@192.168.230.52:/mnt/
					
					
					
1.打开powershell
2.执行ssh-keygen
3.windows下找到公钥 C:\Users\Administrator.DESKTOP-7PQVV6E\.ssh\id_rsa.pub
4.将公钥内容复制到 m01 跳板机上
    [root@m01 ~]# vim .ssh/authorized_keys
    [root@m01 ~]# chmod 600 .ssh/authorized_keys
    
    
    
    
1.打开xshell,工具栏中的工具,点击新建用户密钥
2.选择加密文件类型和位数,下一步
3.生成密钥对成功,下一步
4.给密钥配置信息,名字,密码...,完成
 
5.密钥属性或者工具栏用户密钥管理者
6.选择密钥对,点击属性,查看公钥
7.将公钥内容复制到 m01 跳板机上
    [root@m01 ~]# vim .ssh/authorized_keys
    [root@m01 ~]# chmod 600 .ssh/authorized_keys
8.连接时使用密钥连接

3、sftp相关命令

(1)终端连接
1.终端连接
[C:\~]$ sftp 10.0.0.31
 
2.下载文件
sftp:/data> get 2_nfs.jpg
Fetching /data/2_nfs.jpg to 2_nfs.jpg
sftp: received 29.7 KB in 0.03 seconds
 
3.上传文件
sftp:/data> put
#选择文件

(2)服务器之间连接
1.连接
    [root@web01 ~]# sftp 172.16.1.31
    root@172.16.1.31's password: 
    Connected to 172.16.1.31.
    sftp>
 
2.操作远程主机
    sftp> pwd
    Remote working directory: /root
    sftp> cd /data
    sftp> pwd
    Remote working directory: /data
    sftp> ls
    2_nfs.jpg  
    sftp> ls -l
    -rw-r--r--    1 www      www         30419 Nov 23 18:17 2_nfs.jpg
 
3.操作本机(在命令前面加一个 l ,表示localhost)
    sftp> lls -l
    total 8
    -rw-------. 1 root root 1588 Nov 17 12:11 anaconda-ks.cfg
    drwxr-xr-x. 2 root root    6 Nov 18 09:02 dir1
    drwxr-xr-x. 2 root root    6 Nov 18 09:02 dir2
    -rw-r--r--. 1 root root  194 Nov 17 12:29 rewriteip.sh
 
4.拉取命令
    sftp> get 2_nfs.jpg 
    Fetching /data/2_nfs.jpg to 2_nfs.jpg
    /data/2_nfs.jpg                                                                                      100%   30KB   3.1MB/s   00:00    
    sftp> lls -l
    total 40
    -rw-r--r--. 1 root root 30419 Nov 24 10:22 2_nfs.jpg
 
    #指定存储目录拉取
    sftp> get 2_nfs.jpg /opt
    Fetching /data/2_nfs.jpg to /opt/2_nfs.jpg
    /data/2_nfs.jpg                                                                                      100%   30KB  10.9MB/s   00:00    
    sftp> lls -l /opt
    total 32
    -rw-r--r--. 1 root root 30419 Nov 24 10:22 2_nfs.jpg
 
5.推送命令
    sftp> put 2_nfs.jpg
    Uploading 2_nfs.jpg to /data/2_nfs.jpg
    2_nfs.jpg

4、ssh安全优化

# 一、SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。
1.更改远程连接登陆的端口
2.禁止ROOT管理员直接登录
3.密码认证方式改为密钥认证
4.重要服务不使用公网IP地址
5.使用防火墙限制来源IP地址


# 二、优化的配置
[root@m01 ~]# vim /etc/ssh/sshd_config
#修改ssh服务的端口
Port 1748
#禁止使用root登录服务器
PermitRootLogin no
#禁止使用密码登录服务器
PasswordAuthentication no
 
UseDNS                  no      # 禁止ssh进行dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication    no      # 禁止GSS认证,减少连接时产生的延迟

5、免交互

# 一、except软件
[root@m01 ~]# yum install -y expect

[root@m01 ~]# vim xuanjian.exp
#!/usr/bin/expect
set ip 10.0.0.51
set pass 123456
set timeout 30
spawn ssh root@$ip
expect {
        "(yes/no)" {send "yes\r"; exp_continue}
        "password:" {send "$pass\r"}
}
expect "root@*"  {send "df -h\r"}
expect "root@*"  {send "exit\r"}
expect eof


# sshpass软件
[root@m01 ~]# yum install -y sshpass

[root@m01 ~]# sshpass -p 123456 ssh root@10.0.0.51
 
[option]
-p:指定密码
-f:从文件中取密码
-e:从环境变量中取密码
-P:设置密码提示

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值