ssh远程连接,跳板机

今日内容:
1.什么是SSH?
SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全

2.SSH主要的功能是?
	1.提供远程连接功能
	2.提供安全加密服务
3.SSH与Telnet之间有什么关系?
	都能提供远程连接服务

4.抓包分析SSH与Telnet的区别?
	明文   telnet	23/tcp		不支持直接root登录
	密文	ssh		22/tcp		root登录
	
	ssh
		linux  mac  ubuntu   <---
	telnet
		路由器  交换机  防火墙   <---企业	

5.SSH相关客户端指令ssh、scp、sftp?
	ssh   --> 连接服务器
		ssh root@10.0.0.1    -->连接10.0.0.1服务器,使用root用户
		ssh 10.0.0.1		 -->连接10.0.0.1服务器,使用的用户取决于当前登录系统的用户
	-p
		ssh root@10.0.0.1 -p 22   指定连接对端服务器的端口

	scp 远程拷贝
		推送push
		
		1.将本地oldxu.com文件, 推送到31服务器的/root目录下,使用的是31服务器的root系统用户身份
		[root@backup ~]# scp oldxu.com root@172.16.1.31:/root/
		
		拉取pull
		
		2.获取31服务器的/root/oldxu.com文件,至本地/tmp目录,使用的是31的root系统用户身份
		[root@backup ~]# scp root@172.16.1.31:/root/oldxu.com /tmp/
		
		3.拷贝目录
			-r   参数
			-P   端口
			-l   限速 #限速为8096kb,换算为MB,要除以 8096/8=1024KB=1MB
		[root@backup ~]# scp -r -P2222  etc.tar.gz root@172.16.1.31:/tmp/

		4.scp建议:
			1.通常用来拷贝配置文件
			2.大文件方式
				1.先打包,在推送
				2.rsync方式
			限速非常的重要


6.SSH远程登录方式、用户密码、秘钥方式?

	1.用户密码:     lastpass |  1password
		.....
		1.密码复杂容易忘
		2.密码简单不安全
		
	2.秘钥方式:
		 锁(公钥)  钥匙(私钥)
		 
		1) 生成秘钥对    172.16.1.61
			[root@manager ~]# ssh-keygen  -C 552408925@qq.com
		
		2) 将A服务器公钥推送到B服务器  172.16.1.61  --->  172.16.1.31
			[root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31
			#将61服务器的root用户的公钥推送给31服务器的root用户
		
		3) 测试A服务器是否能免密码登录B服务器
			[root@manager ~]# ssh 'root@172.16.1.41'
			Last login: Mon Dec  2 11:03:45 2019 from m01
			[root@backup ~]# 
		
		塞key
			老师  公钥  ----->  学生 公司的服务器上
			
			你想登录哪台服务器
				1.要知道那台服务器的密码
				2.将你的公钥放置对应服务器的对应目录下即可
7.SSH场景实践,借助SSH免秘实现跳板机功能?


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


	SSH服务登录防护需进行如下配置调整,先对如下参数进行了解
	vim /etc/ssh/sshd_config

	Port 6666                       # 变更SSH服务远程连接端口
	PermitRootLogin         no      # 禁止root用户直接远程登录
	PasswordAuthentication  no      # 禁止使用密码直接远程登录
	UseDNS                  no      # 禁止ssh进行dns反向解析,影响ssh连接效率参数
	GSSAPIAuthentication    no      # 禁止GSS认证,减少连接时产生的延迟
	将如下具体配置添加至/etc/ssh/sshd_config文件中,参数需根据实际情况进行调整

	###SSH###
	#Port 6666
	#PasswordAuthentication no
	#PermitRootLogin no
	GSSAPIAuthentication no
	UseDNS no
	###END###

fail2ban又是啥?
fail2ban可以监控系统日志,并且根据一定规则匹配异常IP后使用Firewalld将其屏蔽,尤其是针对一些爆破/扫描等非常有效。

1.开启Firewalld防火墙

[root@bgx ~]# systemctl start firewalld
[root@bgx ~]# systemctl enable firewalld
[root@bgx ~]# firewall-cmd --state
running
2.修改firewalld规则,启用Firewalld后会禁止一些服务的传输,但默认会放行常用的22端口, 如果想添加更多,以下是放行SSH端口(22)示例,供参考:

#放行SSHD服务端口
[root@bgx ~]# firewall-cmd --permanent --add-service=ssh --add-service=http 
#重载配置
[root@bgx ~]# firewall-cmd --reload
#查看已放行端口
[root@bgx ~]# firewall-cmd  --list-service
3.安装fail2ban,需要有epel

[root@bgx ~]# yum install fail2ban fail2ban-firewalld mailx -y
4.配置fail2ban规则.local会覆盖.conf文件

[root@bgx fail2ban]# cat /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 86400
findtime = 600
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s

[sshd]
enabled = true
filter  = sshd
port    = 22
action = %(action_mwl)s
logpath = /var/log/secure
5.启动服务,并检查状态

[root@bgx ~]# systemctl start fail2ban.service
[root@bgx ~]# fail2ban-client status sshd
6.清除被封掉的IP地址

[root@bgx ~]# fail2ban-client set sshd unbanip 10.0.0.1

9.SSH如何结合Google Authenticator 实现双向验证? (只支持你使用密码的方式)
1.先输入手机上的验证码
2.输入密码
https://www.xuliangwei.com/bgx/1345.html

今日总结:
1.介绍SSH协议 应用层协议 安全 远程连接
2.SSH 和telnet? 关系 区别? 22/tcp 23/tcp
3.ssh相关客户端工具?
ssh
scp
4.ssh远程连接方式?
用户密码
秘钥方式
1.先有秘钥对
2.将公钥推送B服务器 —> 大前提: 必须知道B服务器的密码
3.秘钥会保存在对端服务器用户/.ssh/authorized_keys
5.基于ssh方式实现跳板机功能?
1.实际情况?
2.痛点分析?
3.如何解决?
6.ssh相关安全参数?
1.不使用公网IP地址
2.禁止ROOT管理员直接登录
3.更改远程连接登陆的端口
4.密码认证方式改为密钥认证
5.使用防火墙限制来源IP地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VS Code中使用SSH连接跳板机,你可以按照以下步骤进行配置: 1. 打开VS Code,并在扩展中搜索"Remote - SSH"并安装\[1\]。 2. 使用快捷键Ctrl+Shift+P呼出控制面板,然后搜索"remote ssh",选择第一个"Connect to Host"。 3. 在弹出的面板中选择最下方的"Configure SSH Hosts…",然后点击第一个"C:\Users…"进行配置\[2\]。 4. 在出现的config配置文件中写入以下信息: ``` Host JumpMachine // 跳板机名称,可随便取 HostName xx.xxx.xx.xxx // 跳板机主机名 Port xx // 跳板机端口号 User xxxx // 跳板机登录用户名 Host TargetMachine // 目标服务器名称,可随便取 HostName xx.xxx.xxx.xxx // 目标服务器主机名 User xxxxxx // 目标服务器用户名 ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p JumpMachine // 'C:\Windows\System32\OpenSSH\ssh.exe'是你电脑上的ssh.exe路径,Windows用户一般都是这个 ``` 注意:以上配置中的xx.xxx.xx.xxx是跳板机的IP地址,JumpMachine是跳板机的名称,xx.xxx.xxx.xxx是目标服务器的IP地址,TargetMachine是目标服务器的名称\[2\]。 5. 保存配置文件后,你可以使用快捷键Ctrl+Shift+P呼出控制面板,然后搜索"remote ssh",选择第一个"Connect to Host",然后选择你配置的跳板机和目标服务器进行连接\[1\]。 这样,你就可以在VS Code中通过SSH连接跳板机了。希望对你有帮助! #### 引用[.reference_title] - *1* *2* [vscode通过跳板机连接远程服务器(亲测可用)](https://blog.csdn.net/qq_45717425/article/details/127624723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vscode配置跳板机简明教程](https://blog.csdn.net/raelum/article/details/131333888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值