确保Ubuntu服务器上的SSH服务正在运行。在服务器终端执行以下命令:
sudo systemctl status ssh
若服务未启动,使用sudo systemctl start ssh启动;若需开机自启,执行sudo systemctl enable ssh。
编辑配置文件,确保以下关键参数设置正确(若不存在则添加):
PermitRootLogin yes # 允许root用户登录(根据需求调整,生产环境建议设为"prohibit-password")
PasswordAuthentication yes # 允许密码认证(若用密钥认证可设为"no")
PubkeyAuthentication yes # 允许密钥认证(密钥认证必设)
AuthorizedKeysFile .ssh/authorized_keys # 指定公钥文件路径
修改后重启SSH服务使配置生效:
sudo systemctl restart ssh
注意:若修改了PasswordAuthentication为no,需确保密钥认证配置正确,否则会导致密码登录失败。
Ubuntu默认使用ufw防火墙,需确保其未阻止SSH连接(默认端口22):
sudo ufw status # 查看防火墙状态
若防火墙启用且阻止了SSH,可暂时禁用测试(生产环境不建议长期禁用):
sudo ufw disable
或允许SSH流量:
sudo ufw allow ssh
若使用其他防火墙(如iptables),需添加对应规则放行22端口。
SecureCRT连接时需输入Ubuntu服务器上的有效用户名(如ubuntu、root)和对应密码。注意:
/etc/ssh/sshd_config中的AllowUsers参数)。在本地计算机生成RSA密钥对(若已有密钥可跳过):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
默认保存路径:私钥(~/.ssh/id_rsa)、公钥(~/.ssh/id_rsa.pub)。
将公钥复制到Ubuntu服务器:
ssh-copy-id user@remote_host # 替换为服务器用户名和IP
若ssh-copy-id不可用,手动复制公钥内容到服务器~/.ssh/authorized_keys文件(需创建.ssh目录并设置权限):
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "public_key_content" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
在SecureCRT中打开会话属性,依次进入:
Connection -> SSH2 -> Auth
Public Key认证方式;Browse选择本地私钥文件(id_rsa);Passphrase字段正确填写。确保本地计算机与Ubuntu服务器之间的网络通畅,可通过ping命令测试:
ping server_ip_address
若ping不通,需检查网络配置(如IP地址、子网掩码、网关)或联系网络管理员。
若以上步骤均无法解决,可查看Ubuntu服务器的SSH日志,获取具体错误信息:
sudo tail -f /var/log/auth.log # 实时查看认证日志
根据日志中的错误提示(如“invalid user”“permission denied”)进一步排查。
若使用旧版本SecureCRT,可能存在与新版本Ubuntu的兼容性问题(如密钥交换算法不匹配)。建议升级到最新版本,以修复已知bug并提升兼容性。