阿里云服务器如何配置ssh 连接
当新手购买云服务器后,才发现不是上手即用的,而是需要配置密码,设置秘钥对,设置网络安全组等等配置,不小心的配置可能会导致网络安全的问题。下面以阿里云的ECS实例配置作为讲解。
一、SSH 密钥登录的基本原理
SSH 密钥认证是一种比密码更安全的登录方式,它基于非对称加密技术。
密钥对:由一对文件组成
私钥(如 mysshkey.pem):保存在你自己的电脑上,绝不能泄露。
公钥:需要放置在服务器的 ~/.ssh/authorized_keys 文件中。
认证过程:
客户端向服务器发起登录请求,并声明使用密钥认证。
服务器用存储的公钥加密一个随机数,发送给客户端。
客户端用私钥解密该随机数,并返回给服务器。
服务器验证解密结果正确后,允许登录。
核心要点:私钥在客户端,公钥在服务器。服务器拥有公钥即可验证私钥持有者的身份。
二、密钥对的生成
1. 如何生成密钥对?
Linux/Mac 终端或 Windows PowerShell 中执行:
bash
ssh-keygen -t rsa -b 2048 -f ~/.ssh/mykey
-t rsa:指定算法(RSA 最通用)
-b 2048:密钥长度(也可用 4096)
-f:指定保存路径和文件名,不加则默认 id_rsa
执行后会提示设置私钥密码(passphrase),可选(建议设置,增加一层保护)。
生成两个文件:
mykey(私钥)
mykey.pub(公钥)
2. 如何从私钥提取公钥?
如果你已有私钥(如 .pem 文件),可以用以下命令查看对应的公钥:
bash
ssh-keygen -y -f 私钥文件路径
屏幕上显示的 ssh-rsa AAA... 内容即为公钥。
三、服务器端:添加公钥
你需要将你的公钥内容添加到目标服务器上相应用户的 ~/.ssh/authorized_keys 文件中。
方法一:手动添加(通过已有方式登录服务器后)
登录服务器(密码或VNC)。
创建 .ssh 目录并设置权限:
bash
mkdir -p ~/.ssh
chmod 700 ~/.ssh
将公钥内容追加到 authorized_keys:
bash
echo '你的公钥内容' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
权限必须严格设置:.ssh 为 700,authorized_keys 为 600,否则 SSH 可能拒绝使用密钥。
方法二:通过云控制台绑定密钥对(以阿里云为例)
在 ECS 控制台的“密钥对”管理中,可以导入已有的公钥或创建新密钥对。

然后将密钥对绑定到你的实例。绑定后,阿里云会自动将公钥写入实例的 /root/.ssh/authorized_keys(可能需要重启实例生效)。
优点:无需手动登录即可完成公钥部署,适合新购实例或重装系统时使用。
四、客户端配置(以 Xshell 为例)
1. 导入私钥
打开 Xshell,点击菜单 工具 → 用户密钥管理者。
点击 导入,选择你的私钥文件(如 mysshkey.pem),文件类型选“所有文件”。
导入成功后,列表中会显示该密钥。
2. 新建或修改会话
在会话属性中,选择 连接 → 用户身份验证。
方法:选择 Public Key。
用户名:填写登录服务器的用户名(如 root)。
用户密钥:点击浏览,选择刚刚导入的密钥。
如果私钥有密码(passphrase),在“密码”栏输入;没有则留空。
点击确定保存,然后连接。
# 五、安全组与网络设置
密钥认证能否成功,首先需要网络连通。你需要确保:
服务器安全组 入方向 允许你的本地公网 IP 访问 TCP 22 端口。
访问来源 应设置为你的公网 IP/32(例如 123.123.123.123/32),而不是服务器 IP 或内网 IP。
如果你的公网 IP 是动态的,可能需要定期更新安全组规则,或使用弹性公网 IP 固定地址。
如何获取你的公网 IP?
访问 https://www.ip138.com 或百度搜索“IP”。
六、常见连接失败原因及排查
1. 网络不通(Connection failed)
检查安全组规则是否放行了你的 IP。
用 ping 测试服务器 IP,如果超时但 SSH 可能通(ping 需要 ICMP 协议),直接尝试 SSH 连接。
通过阿里云 VNC 登录服务器,检查 SSH 服务状态和内部防火墙。
2. 密钥未注册(Permission denied (publickey))
服务器上没有你的公钥,或 authorized_keys 文件权限错误。
用密码登录后重新添加公钥,并确保权限正确。
3. 客户端无法加载密钥(Xshell 报错)
私钥格式不被 Xshell 识别(如 OpenSSH 格式通常没问题)。
解决方法:通过 Xshell 的“用户密钥管理者”导入,而不是直接双击打开。
4. 服务器拒绝连接(Connection refused)
SSH 服务未运行,或监听在错误的地址(如 127.0.0.1)。
用 VNC 登录,检查 SSH 服务并重启。
5. 公钥已添加但仍提示输入密码
检查 SSH 配置文件 /etc/ssh/sshd_config 中是否启用了密钥认证:
text
PubkeyAuthentication yes
如果同时启用了密码认证,客户端可能会优先尝试密钥,失败后回退到密码。你可以通过 ssh -v 查看详细认证过程。
更多推荐
所有评论(0)