Ubuntu环境下Guacamole用私钥连接Oracle Cloud实例失败求助
解决Guacamole连接Oracle Cloud Linux实例的私钥登录问题
一、修正私钥文件权限
SSH和Guacamole对私钥权限要求极高,必须限制为仅所有者可读:
- 将Oracle Cloud下载的私钥文件(如
oci_key.pem)上传到Ubuntu服务器的/etc/guacamole/keys/目录(没有就新建) - 执行命令修改权限:
(chmod 600 /etc/guacamole/keys/oci_key.pem chown guacd:guacd /etc/guacamole/keys/oci_key.pemguacd是Guacamole的运行用户,确保它拥有私钥的读取权限)
二、核对Guacamole SSH连接配置
在Guacamole的连接编辑页面,确认以下配置项:
- 主机名/IP:填写Oracle Cloud实例的公网IP或预留域名
- 端口:默认22,若修改过SSH端口则填对应值
- 认证方式:选择「SSH密钥」
- 私钥:直接粘贴私钥文本内容,或填写私钥文件的绝对路径(如
/etc/guacamole/keys/oci_key.pem) - 用户名:Oracle Cloud实例的默认用户名,Ubuntu实例为
ubuntu,Oracle Linux实例为opc,切勿填错
三、检查Oracle Cloud实例的SSH相关设置
- 网络权限:登录Oracle Cloud控制台,进入实例对应的安全列表/网络安全组,确保入站规则允许22端口的TCP流量,来源包含你的Guacamole服务器公网IP
- SSH服务配置:通过Oracle控制台的「串行控制台」登录实例,检查
/etc/ssh/sshd_config文件:- 确认
PubkeyAuthentication yes已开启 - 确认
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2配置正确 - 执行命令重启SSH服务:
sudo systemctl restart sshd
- 确认
四、本地测试SSH连接(排查Guacamole无关问题)
在你的Ubuntu服务器上直接执行SSH命令,验证连接是否正常:
ssh -i /etc/guacamole/keys/oci_key.pem opc@<Oracle实例公网IP>
- 若提示
Permission denied (publickey):检查私钥是否匹配、用户名是否正确,或通过串行控制台将私钥公钥添加到实例的~/.ssh/authorized_keys文件中 - 若提示
Connection timed out:重点检查Oracle实例的安全组/防火墙是否开放22端口
内容的提问来源于stack exchange,提问作者Umesh Kandhalu
相关产品推荐
相关产品推荐

