跳板机介绍_远程连接介绍_SSH命令及SSH实现免密远程连接_生产过程中SSH配置优化

*跳板机(JumpSever)

用途:

架构图中除了负载均衡服务器配置连接公网ip网卡和连接内网ip的网卡外,再单独一台机器也这样配置,作为跳板机,这样以后公司内部人员若要访问操作内网的其他机器的话,那么就先远程连接这台跳板机,然后通过跳板机来访问操作内网的其他机器(跳板机需要事先配置好实现免密连接内网其他机器,使内网的关机服务器密码对公司内部人员隐藏)
在这里插入图片描述
在这里插入图片描述

一、远程连接概述

1、Linux远程连接
1)使用SSH连接
  • 端口:22
  • 服务:sshd
  • 特点:安全,数据在网络传输是加密的
*2)使用Telnet连接
  • 端口:23
  • 服务:telnet-server
  • 特点:不安全,数据在网络传输是明文的
*2、Windows远程连接

使用RDP(remote desktop protocol)协议连接
端口:3389

二、Linux下ssh具体使用

1、ssh ....命令
1)ssh 远程主机用户名@远程主机ipssh 远程主机ip的区别:

后者的远程主机用户名是默认当前主机使用这个命令的用户名来连接远程主机的,如果远程主机没有这个用户,那么就无法连接

2)上述命令执行过程:
  • 进行公钥指纹确认

    • 请求远程需要连接的主机发送它的公钥的公钥指纹,默认存储到家目录的“.ssh”的known_host,便于后续的快速确认连接的安全性
    • 只在第一次进行确认,第二次的话就没有了
      *注:ECDSA公钥指纹?
      在这里插入图片描述
      注意:如果以前连接过一个ip的主机,就会将其公钥存储起来,内容是含有这个ip信息的,如果因某些原因,要连接相同ip的另一个主机,那么就会报错
      在这里插入图片描述
  • 输入远程主机用户名的密码
    在这里插入图片描述

2、免密连接实现方法
1)原理:

公钥:理解为锁
私钥:理解为钥匙
这样就可以通过密钥对的方式来认证

2)具体过程
  • 生成密钥对
ssh-keygen

(key generate)

step1. 输入存储密钥对的存储位置:
默认是存储到当前登录用户家目录下的“.ssh”下,并生成私钥文件“id_rsa”
在这里插入图片描述
step2. 输入并确认密钥对的密码
然后就生成了公钥文件“id_rsa.pub”,存放至上一步的位置
在这里插入图片描述

  • 向想要免密连接哪台机器复制公钥文件
ssh-copy-id 远程主机用户名@远程主机这个用户的密码

“-i”指定公钥文件位置

ssh-copy-id -i 指定公钥文件位置 远程主机用户名@远程主机这个用户的密码

这样的话,那台机器的用户家目录下就会有一个文件叫做“authorized_keys”,内容和本机的指定的或默认的“id_rsa.pub”公钥文件是一样的
在这里插入图片描述
注:“ssh-copy-id”加i选项和不加的区别
在这里插入图片描述

3、SSH安全、性能优化

修改“/etc/ssh/sshd_config”内容:

  • 是否端口不改默认端口(安全优化)
    “Port 22”
    防止恶意通过默认端口22来扫描到SSH的服务
    在这里插入图片描述

  • 是否禁止客户端使用root用户连接(安全优化)
    “PermitRootLogin no”
    如果配置了,想要用root,必须用普通用户登录后,“su root”切换到root登录即可

  • 是否禁止客户端通过密码连接(安全优化)
    “PasswordAuthentication no”
    如果配置了这个,那么客户端就只能用密钥方式认证连接了(如果密钥连接没有被禁用)

  • 是否禁止DNS反向解析(性能优化)
    “UserDNS no”
    配置了这个,会使速度提高一点

  • 是否禁止GSSAPI认证(性能优化)
    “GSSAPIAuthentication no”
    *注:GSSAPIAuthentication介绍及其对SSH性能的影响
    在这里插入图片描述

<think>好的,用户想通过VS Code使用SSH远程连接到服务器,需要一步步的指导。首先,我需要回忆一下VS Code的Remote-SSH扩展的基本用法。用户可能已经安装了VS Code,但需要确认是否安装了Remote Development扩展包,其中包括Remote-SSH。 接下来,生成SSH钥对是常见的安全做法,用户可能已经拥有钥,但如果没有,需要指导他们生成。记得提到使用ssh-keygen命令,并保存到默认路径。然后是将公钥上传到服务器的步骤,使用ssh-copy-id或者手动复制到~/.ssh/authorized_keys,这里可能需要根据用户的操作系统给出不同的指示,比如Windows用户可能需要手动操作。 配置SSH配置文件部分,用户可能需要帮助编辑~/.ssh/config文件,正确设置Host、HostName、User和IdentityFile。这部分需要详细说明,避配置错误导致连接失败。 在VS Code中连接时,用户需要打开远程资源管理器,选择配置好的主,可能会遇到不同情况,比如首次连接时的验证或端口问题。如果默认端口不是22,需要提醒用户使用-P选项或者在配置文件中指定端口。 另外,用户可能遇到常见问题,比如权限错误,需要检查.ssh目录和authorized_keys文件的权限。还有防火墙设置,确保服务器的SSH端口开放,引用中的信息提到防火墙规则,比如引用[5]中的端口3306,但SSH默认是22,可能需要调整。 最后,引用相关的资料,比如引用[4]提到的PuTTY钥转换,如果用户使用Windows和PuTTY,可能需要转换钥格式。同时,引用[3]提到使用-e选项指定端口,但在VS Code中是通过配置文件或参数设置端口。 总结步骤:安装扩展、生成钥、上传公钥、配置SSH连接、处理常见问题。需要确保每一步都清晰,避技术术语过多,让用户容易跟随。同时,检查是否有遗漏的细节,比如服务器是否允许SSH访问,用户是否有权限等。</think>### 通过VS Code使用SSH远程连接服务器的步骤 #### 1. **安装必要插件** - 打开VS Code,在扩展商店搜索 **Remote Development** 并安装(包含Remote-SSH组件)。 - 安装后左侧工具栏会显示 **远程资源管理器** 图标。 #### 2. **生成SSH钥对(若未生成过)** - 本地终端执行: ```bash ssh-keygen -t rsa -b 4096 ``` 默认保存路径为 `~/.ssh/id_rsa`(私钥)和 `~/.ssh/id_rsa.pub`(公钥)[^2]。 #### 3. **上传公钥到服务器** - 使用以下命令将公钥添加到服务器的授权列表: ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip ``` 若失败,可手动将公钥内容复制到服务器的 `~/.ssh/authorized_keys` 文件中[^4]。 #### 4. **配置SSH连接信息** - 编辑本地SSH配置文件 `~/.ssh/config`: ``` Host myserver HostName server_ip_or_domain User username IdentityFile ~/.ssh/id_rsa Port 22 # 若非默认端口需修改(如2222)[^3] ``` #### 5. **通过VS Code连接** - 点击远程资源管理器 → 选择配置的 `myserver` → 右键选择 **Connect to Host**。 - 首次连接会提示验证服务器指纹,确认后输入码(若未配置登录)。 #### 6. **高级配置(可选)** - **端口转发**:若服务器SSH端口非默认(如2222),在配置文件中添加 `Port 2222`。 - **代理设置**:通过 `ProxyCommand` 配置跳板访问内网服务器。 #### 常见问题排查 - **权限错误**:确保服务器上 `.ssh` 目录权限为 `700`,`authorized_keys` 文件权限为 `600`。 - **防火墙限制**:确认服务器防火墙开放SSH端口(默认TCP/22)[^5]。 - **钥格式问题**:若使用PuTTY生成的钥,需转换为OpenSSH格式(使用PuTTYgen工具)。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值