GCP连接finalshell

GCP实例配置SSH密码登录教程 - FinalShell连接指南

本文介绍如何将GCP(Google Cloud Platform)实例从默认的SSH密钥认证改为密码认证,并使用FinalShell成功连接。

前言

GCP默认使用SSH密钥认证,但有时我们需要使用密码登录更加方便。本文将详细介绍如何修改SSH配置以支持密码登录。

准备工作

  • 一个运行中的GCP实例
  • 能够通过GCP控制台SSH连接到实例
  • 本地安装FinalShell客户端

操作步骤

1. 通过GCP控制台连接实例

  • 登录 GCP Console
  • 进入 Compute Engine > VM实例
  • 点击实例右侧的 “SSH” 按钮,打开浏览器内终端

2. 设置用户密码

首先为你的用户设置密码:

1
2
# 为当前用户设置密码
sudo passwd root

输入两次新密码,确保记住它。

注意:不建议为root用户设置密码并允许root登录,这会带来安全风险。

3. 修改SSH配置文件

编辑SSH服务器配置文件:

1
sudo nano /etc/ssh/sshd_config

如果你习惯使用vi编辑器,也可以用:sudo vi /etc/ssh/sshd_config

4. 修改关键配置项

在配置文件中找到以下配置项并修改(如果没有则添加):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 允许密码认证
PasswordAuthentication yes

# 允许键盘交互式认证(重要!)
KbdInteractiveAuthentication yes

# 启用PAM认证
UsePAM yes

# 允许公钥认证(可保留,不影响密码登录)
PubkeyAuthentication yes

# 允许root用户登录
PermitRootLogin yes

特别注意KbdInteractiveAuthentication 这一项必须设为 yes,否则会导致密码认证失败!

5. 检查配置文件中的Include指令

有些系统会在配置文件开头包含其他配置文件:

1
2
# 查看配置文件开头
head -20 /etc/ssh/sshd_config

如果看到类似 Include /etc/ssh/sshd_config.d/*.conf 的行,需要检查那些文件:

1
2
3
4
5
# 列出包含的配置文件
ls /etc/ssh/sshd_config.d/

# 查看内容
cat /etc/ssh/sshd_config.d/*.conf

确保这些文件中没有与你的配置冲突的设置。

6. 验证并重启SSH服务

1
2
3
4
5
6
7
8
# 验证配置文件语法是否正确
sudo sshd -t

# 如果没有报错,重启SSH服务
sudo systemctl restart sshd

# 检查服务状态
sudo systemctl status sshd

7. 配置FinalShell连接

打开FinalShell,配置新连接:

  1. 点击工具栏的 “连接” 按钮

  2. 选择 SSH连接(Linux)

  3. 填写连接信息:

    • 名称:自定义(如:GCP-MyServer)
    • 主机:GCP实例的外部IP地址
    • 端口:22
    • 认证方式:选择 “密码”
    • 用户名:你的Linux用户名
    • 密码:刚才设置的密码
  4. 点击 “确定” 保存

  5. 双击连接即可

常见问题排查

问题1:一直提示输入密码,输入正确也无法登录

原因KbdInteractiveAuthentication 设置为 no

解决方法

1
sudo nano /etc/ssh/sshd_config

确保这一行为:

1
KbdInteractiveAuthentication yes

然后重启SSH服务:

1
sudo systemctl restart sshd

问题2:连接超时

可能原因

  • GCP防火墙未开放22端口
  • 实例外部IP地址错误

解决方法

  • 检查 VPC网络 > 防火墙规则
  • 确保有允许TCP端口22的入站规则

问题3:配置修改后仍无法生效

排查步骤

  1. 检查配置文件中是否有重复配置项
  2. 查看SSH日志定位问题:
    1
    2
    3
    sudo tail -f /var/log/auth.log
    # 或者
    sudo journalctl -u sshd -f
  3. 尝试从命令行测试连接:
    1
    ssh -v 用户名@实例IP

安全建议

⚠️ 允许密码登录会降低安全性,建议采取以下措施:

1. 使用强密码

  • 至少12位字符
  • 包含大小写字母、数字和特殊字符
  • 不使用常见单词或个人信息

2. 限制SSH访问IP

在GCP防火墙规则中:

  • 不要使用 0.0.0.0/0(允许所有IP)
  • 仅允许你的固定IP或公司IP段访问

3. 安装Fail2ban防止暴力破解

1
2
3
4
5
6
7
# 安装Fail2ban
sudo apt update
sudo apt install fail2ban -y

# 启动并设置开机自启
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

4. 更改SSH默认端口(可选)

1
2
# 在sshd_config中修改
Port 2222 # 改为其他端口

记得在GCP防火墙中开放新端口,并关闭22端口。

5. 定期更新系统

1
sudo apt update && sudo apt upgrade -y

SSH认证方式对比

密钥认证 vs 密码认证

特性 密钥认证 密码认证
安全性 高(几乎无法暴力破解) 较低(容易被暴力破解)
便捷性 高(无需输入密码) 中(每次需要输入)
配置难度 稍复杂(需要生成和配置密钥) 简单(只需设置密码)
推荐场景 生产环境、自动化脚本 临时访问、学习测试

关键配置项说明

1
2
3
4
5
6
7
8
9
10
11
# 公钥认证:使用SSH密钥对登录
PubkeyAuthentication yes

# 密码认证:使用密码登录
PasswordAuthentication yes

# 键盘交互式认证:允许交互式密码输入(必须开启!)
KbdInteractiveAuthentication yes

# PAM认证:可插拔认证模块
UsePAM yes

提示:可以同时启用密钥认证和密码认证,SSH客户端会优先尝试密钥认证,如果没有密钥才会提示输入密码。

总结

通过修改 sshd_config 配置文件,我们可以轻松地在GCP实例上启用SSH密码认证。关键点是确保以下三项都设置为 yes

  1. PasswordAuthentication yes
  2. KbdInteractiveAuthentication yes
  3. UsePAM yes

配置完成后,就可以使用FinalShell等SSH客户端通过密码方便地连接GCP实例了。

但请记住,在生产环境中,密钥认证仍然是更安全的选择。如果使用密码认证,务必采取额外的安全措施。


相关文章推荐

  • SSH密钥认证配置教程
  • Linux服务器安全加固指南
  • Fail2ban配置与使用

有问题欢迎在评论区讨论!


GCP连接finalshell
https://yblog.15937.top/2025/11/29/GCP连接finalshell/
作者
㪾夜
发布于
2025年11月29日
许可协议