云服务器 ECS:使用OpenSSH/Xshell远程连接Linux实例

云服务器 ECS:使用OpenSSH/Xshell远程连接Linux实例

当本地设备为macOS或Windows 10/11,可直接使用系统内置的OpenSSH命令行工具连接Linux实例。此外,本地Windows设备也可以通过Xshell工具连接实例,两种方式均支持密码或密钥对认证。

重要 推荐通过Workbench连接阿里云上的实例,该工具可直接通过浏览器使用、支持免密登录,相比使用OpenSSH、Xshell更便捷。

适用范围实例操作系统为Linux。

实例已绑定固定公网IP或弹性公网IP。

方式一:使用OpenSSH客户端(命令行)OpenSSH是macOS和新版Windows系统内置的标准SSH客户端,通过命令行即可快速连接。

准备工作实例公网IP地址:在ECS控制台-实例,找到目标实例进入详情,在配置信息区域找到公网IP。

实例登录凭证:为实例设置密码或绑定密钥对。

配置安全组:为实例关联的安全组配置入方向规则,允许本地IP通过SSH(22端口)访问实例。

操作步骤Windows 10/11密码登录打开PowerShell

按Win+R输入powershell后按Enter键进入PowerShell命令行界面。

发起远程连接

ssh <实例登录名>@<实例公网IP地址>示例:ssh root@47.98.xxx.xxx(首次连接时)验证主机指纹

当首次连接一台新的ECS时,会显示类似下方的信息,提示验证主机密钥指纹。

这是SSH的一项安全机制,为确保安全,请获取实例的主机密钥指纹后比对差异。若不一致,则说明正在遭受中间人攻击,请切换到安全的网络环境下重新连接实例。确认主机指纹无误后,输入yes并按回车。

The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.

ED25519 key fingerprint is SHA256:AbCdEf123456...

This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])? 输入密码,进入实例

输入密码时屏幕不会显示字符,这是正常现象,输入完成后按回车即可。密码验证通过后,将看到类似下方的欢迎信息,并且命令提示符会变为 [<实例登录名>@ ~]$ 的形式。表示已成功登录到ECS实例。

Welcome to Alibaba Cloud Elastic Compute Service !

[root@Connect-Instance-Example ~]#密钥对登录打开PowerShell

按Win+R输入powershell后按Enter键进入PowerShell命令行界面。

发起远程连接

ssh -i /path/to/private_key.pem <实例登录名>@<实例公网IP地址>示例:ssh -i /path/to/private_key.pem root@47.98.xxx.xxx。其中/path/to/private_key.pem为私钥文件路径,例如C:\Users\Administrator\Downloads\private_key.pem。(首次连接时)验证主机指纹

当首次连接一台新的ECS时,会显示类似下方的信息,提示验证主机密钥指纹。

这是SSH的一项安全机制,为确保安全,请获取实例的主机密钥指纹后比对差异。若不一致,则说明正在遭受中间人攻击,请切换到安全的网络环境下重新连接实例。确认主机指纹无误后,输入yes并按回车。

The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.

ED25519 key fingerprint is SHA256:AbCdEf123456...

This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])? 验证密钥,进入实例

当密钥验证通过后,将看到类似下方的欢迎信息,并且命令提示符会变为 [<实例登录名>@ ~]$ 的形式。表示已成功登录到ECS实例。

Welcome to Alibaba Cloud Elastic Compute Service !

[root@Connect-Instance-Example ~]#macOS密码登录打开终端(Terminal)。

发起远程连接。

ssh <实例登录名>@<实例公网IP地址>示例:ssh root@47.98.xxx.xxx(首次连接时)验证主机指纹

当首次连接一台新的ECS时,会显示类似下方的信息,提示验证主机密钥指纹。

这是SSH的一项安全机制,为确保安全,请获取实例的主机密钥指纹后比对差异。若不一致,则说明正在遭受中间人攻击,请切换到安全的网络环境下重新连接实例。确认主机指纹无误后,输入yes并按回车。

The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.

ED25519 key fingerprint is SHA256:AbCdEf123456...

This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])? 输入密码,进入实例

输入密码时屏幕不会显示字符,这是正常现象,输入完成后按回车即可。密码验证通过后,将看到系统的登录欢迎信息(具体内容因操作系统镜像而异),并且命令提示符会变为 [<实例登录名>@ ~]$ 的形式。表示已成功登录到ECS实例。

Welcome to Alibaba Cloud Elastic Compute Service !

[root@Connect-Instance-Example ~]#密钥对登录打开终端(Terminal)。

发起远程连接

# chmod 400: 为私钥文件设置仅所有者可读的权限,这是SSH客户端的安全要求

chmod 400 /path/to/private_key.pem

ssh -i /path/to/private_key.pem <实例登录名>@<实例公网IP地址>示例:ssh -i /path/to/private_key.pem root@47.98.xxx.xxx。其中/path/to/private_key.pem为私钥文件路径。(首次连接时)验证主机指纹

当首次连接一台新的ECS时,会显示类似下方的信息,提示验证主机密钥指纹。

这是SSH的一项安全机制,为确保安全,请获取实例的主机密钥指纹后比对差异。若不一致,则说明正在遭受中间人攻击,请切换到安全的网络环境下重新连接实例。确认主机指纹无误后,输入yes并按回车。

The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.

ED25519 key fingerprint is SHA256:AbCdEf123456...

This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])? 验证密钥,进入实例

当密钥验证通过后,将看到类似下方的欢迎信息,并且命令提示符会变为 [@ ~]$ 的形式。表示已成功登录到ECS实例。

Welcome to Alibaba Cloud Elastic Compute Service !

[root@Connect-Instance-Example ~]#方式二:使用Xshell客户端(仅适用于Windows)Xshell是一款SSH客户端工具,用于在Windows系统远程登录和管理Linux服务器。

准备工作下载并安装Xshell:访问 Xshell 官方网站下载并安装最新客户端。

实例公网IP地址:在ECS控制台-实例,找到目标实例进入详情,在配置信息区域找到公网IP。

实例登录凭证:为实例设置密码或绑定密钥对。

配置安全组:为实例关联的安全组配置入方向规则,允许本地IP通过SSH(22端口)访问实例。

操作步骤启动 Xshell 并新建会话

打开 Xshell 应用程序。

在弹出的会话窗口中,单击新建(或通过菜单栏文件 > 新建)。

配置连接基本信息

单击左侧导航栏下的连接,完成配置:

名称:为会话取一个易于识别的名称(例如:My-Web-Server)。

协议:保持默认的SSH。

主机:输入实例的公网 IP。

端口号:保持默认的22。

配置用户身份验证

在左侧导航栏中,单击用户身份验证。

密码登录方法:选择Password。

用户名:输入服务器的登录名(如root)。

密码:输入对应的登录密码。

密钥对登录用户名:输入服务器的登录名(如root)。

方法:选择Public Key,并按以下步骤配置用户密钥:

单击设置...。

在弹出的窗口中,选择密钥文件选项,单击用户密钥配置项后的...,单击导入...,选择本地存储的.pem后缀私钥文件。

导入成功后,选中该密钥,单击确定。

(可选)如密钥文件设置了密码,则需要提供密码。

连接到服务器

完成上述配置后,单击连接。

(首次连接时)验证主机密钥

当首次连接一台新的ECS时,Xshell会弹出SSH安全警告窗口,显示主机密钥指纹。

这是SSH的一项安全机制,为确保安全,请获取实例的主机密钥指纹后比对差异。若不一致,则说明正在遭受中间人攻击,请切换到安全的网络环境下重新连接实例。确认无误后,单击接受并保存,这样以后连接就不会再弹出此提示。

连接到服务器

当看到命令提示符出现以下内容时,表示已经通过验证,成功连接。

Welcome to Alibaba Cloud Elastic Compute Service !

[root@Connect-Instance-Example ~]#应用于生产环境在实际生产环境中,建议通过以下操作提升远程连接安全。

主动验证主机指纹,防范中间人攻击在第一次连接到实例时,应先验证实例的主机密钥指纹,确认连接的是目标实例而非攻击者的服务器。

禁用密码登录,强制使用密钥对密钥对认证远比密码认证安全,可降低暴力破解风险。操作如下:

为实例绑定密钥对。

禁用密码登录:登录实例,编辑/etc/ssh/sshd_config配置文件,找到PasswordAuthentication,修改为PasswordAuthentication no,重启SSH服务生效配置。

修改默认SSH端口

将默认22端口改为其他数值较大的非标准端口(如2222),可有效减少被恶意扫描。

放行新端口: 在实例所属的安全组中添加入方向规则,放行新的端口(如2222)

修改SSH服务端口:登录实例,编辑/etc/ssh/sshd_config配置文件,将#Port 22修改为Port 2222。重启SSH服务生效配置。

使用新端口连接: 此后使用ssh命令时,需通过-p指定ssh的服务端口,例如:ssh -p 2222 username@instance_ip。

仅授权可信的IP访问实例修改安全组规则安全组规则,仅允许本机IP或其他受信任的IP访问实例SSH服务,拦截未知主机访问实例。

常见问题如何配置安全组规则以放行22端口?在实例所在安全组添加如下安全组规则:

授权策略

协议

访问来源

访问目的(本实例)

允许

自定义 TCP

输入本地客户端的公网IP地址。

重要 若使用0.0.0.0/0,表示允许任意 IP 访问远程服务端口,存在安全风险,请谨慎使用。

SSH(22)

如果修改了实例的SSH服务的端口,需调整为实际端口。如何验证实例的主机密钥指纹?首次连接实例时,会提示验证主机密钥指纹,确认方法如下:

控制台进入ECS控制台-实例,在左上角选择地域与资源组。

找到对应实例后,单击 > 获取实例系统日志,然后找到BEGIN SSH HOST KEY FINGERPRINTS,会显示所有主机指纹。

请仔细核对本地客户端提示的指纹(如上例中的 SHA256:******)是否与日志中显示的指纹完全一致。若不一致,则可能正在遭受中间人攻击,需切换至安全网络环境后重试连接。

若找不到BEGIN SSH HOST KEY FINGERPRINTS,需进入实例内查看主机指纹。实例内使用Workbench登录实例后执行以下命令,查看主机密钥指纹:

for f in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -l -f "$f"; done输出示例:

1024 SHA256:9C******co root@Connect-Instance-Example (DSA)

256 SHA256:u6******SU root@Connect-Instance-Example (ECDSA)

256 SHA256:iQ******jg root@Connect-Instance-Example (ED25519)

3072 SHA256:8R******64 root@Connect-Instance-Example (RSA)请仔细核对本地客户端提示的指纹(如上例中的 SHA256:******)是否与日志中显示的指纹完全一致。若不一致,则可能正在遭受中间人攻击,需切换至安全网络环境后重试连接。

如何通过SSH的config配置文件简化连接命令?每次连接都输入完整的ssh -i /path/to/key.pem username@instance_ip命令较为繁琐。通过在本地创建和配置SSHconfig文件,可以为服务器设置别名,简化连接命令。

找到或创建config文件

Windows 10/11config配置文件默认路径为C:\Users\YourUsername\.ssh\config。若不存在,需手动创建。

使用时,请替换YourUsername为当前Windows的用户名。macOSconfig配置文件默认路径为~/.ssh/config。若不存在,需手动创建。

编辑config文件并添加实例信息

使用文本编辑器打开config文件,添加类似如下的配置。每一段Host配置对应一个服务器实例。

# 为Web服务器配置一个别名 "web-server"

Host web-server

HostName 47.98.xxx.xxx

User root

Port 22

(可选)如果使用密钥对登录,请指定私钥路径,使用密码登录请忽略

IdentityFile /path/to/your/private_key.pem

# 可以为其他服务器添加更多配置

Host other-server

HostName 8.123.xxx.xxx

User ecs-user

Port 2222

IdentityFile ~/.ssh/another_key.pem参数说明:

Host:服务器的别名,可自定义。

HostName:实例的公网IP地址。

User:登录用户名。

Port:SSH端口号(默认为22)。

IdentityFile:私钥文件的绝对路径。

使用别名快速连接

保存config文件后,可以直接使用别名来连接实例。

# 直接使用别名连接,SSH会自动读取config中的IP、用户名和密钥信息

ssh web-server连接时出现Connection timed out或提示连接超时?表示客户端无法连接到服务器。排查顺序:

检查公网IP是否正确。

检查安全组是否放行端口。

检查实例是否处于运行状态。

使用ECS控制台-自助问题排查排查异常。

密码输入正确,但提示Permission denied, please try again表示服务器拒绝了密码。排查顺序:

在控制台重置密码后重试。

使用ECS控制台-自助问题排查排查异常。

使用密钥对登录时提示Permission denied (publickey)?表示服务器拒绝了密钥。排查顺序:

在控制台重新绑定密钥对后重试。

检查私钥文件路径及是否与实例匹配。

(macOS系统下)检查私钥文件权限是否为400或600。

使用ECS控制台-自助问题排查排查异常。

通过SSH命令登录实例时,提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!这是SSH的安全机制:在第一次连接实例后,会记住主机密钥指纹,后续连接时若指纹不一致,会提示该错误。可能是由于执行过更换系统盘、更换操作系统、删除了实例系统中的主机密钥文件等操作。

解决办法:验证实例的主机密钥指纹,若无误,执行以下命令,删除本地保存的主机密钥指纹。

ssh-keygen -R <实例公网IP地址>

相关推荐

回望1986年世界杯
365在线体育官方网站入口

回望1986年世界杯

📅 07-26 👁️ 4899
铱金与铱铂金的区别:回收铱废料、铂铱合金
365在线体育官方网站入口

铱金与铱铂金的区别:回收铱废料、铂铱合金

📅 01-17 👁️ 7799
欢乐颂2什么时候播出?在哪个台播?播出平台及时间介绍