guacamole免密登录,guacamole不通过登录界面登录,guacamole指定用户名免密登录
Posted sddhome
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了guacamole免密登录,guacamole不通过登录界面登录,guacamole指定用户名免密登录相关的知识,希望对你有一定的参考价值。
第一步,获取指定用户token
通过POST接口: http://localhost:9090/guacamole/api/tokens
参数1:username
参数2:password
返回:authToken
JAVA代码调用如下:
public String generateToken(String userName) HttpHeaders headers = getHttpHeaders(MediaType.APPLICATION_FORM_URLENCODED); MultiValueMap<String, String> forms = new LinkedMultiValueMap<String, String>(); forms.put("username", Collections.singletonList(userName)); forms.put("password", Collections.singletonList(globalConfig.getGuacPassword())); HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<MultiValueMap<String, String>>(forms, headers); String body = restTemplateConfig.restTemplate().postForObject(globalConfig.getGuacamoleUrl() + "/api/tokens", httpEntity, String.class); JSONObject responseBody = JSONObject.parseObject(body); return responseBody.getString("authToken");
第二步,带上token请求,访问生成的guacamole url 即可。
浏览器访问:http://localhost:9090/guacamole/#/client/MjgAYwBteXNxbA?token=C08E3DC80A4E04D3747E8EB5C8D379E1EF6E70E9FC43F0E722FFD39B6B1154E7
结果如图:
guacamole JAVA工具类:
https://files.cnblogs.com/files/sdd53home/HttpMethodForGuacamole.zip?t=1681291274
guacamole安装配置
系统环境:
CentOS7.2 + Tomcat8.5 + JDK18 + guacamole-server0.9.14
安装必要环境:
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm yum update -y
安装依赖包
yum -y install cairo-devel libjpeg-devel libpng-devel uuid-devel yum -y install ffmpeg-devel freerdp-devel pango-devel libssh2-devel yum -y install libtelnet-devel libvncserver-devel pulseaudio-libs-devel yum -y install openssl-devel libvorbis-devel libwebp-devel
下载安装包:
下载地址:https://guacamole.apache.org/releases/0.9.14/
guacamole-server安装
tar zxf guacamole-client-0.9.14.tar.gz -C /opt cd /opt/guacamole-server-0.9.14/ ./configure --with-init-dir=/etc/init.d make && make install
启动guacd服务
# /etc/init.d/guacd start Starting guacd: SUCCESS
安装guacamole client
1、首先安装jdk 和tomcat,安装过程省略
2、安装client
mv guacamole-0.9.14.war /usr/local/tomcat/webapps
写一个tomcat启动脚本
#!/bin/bash # description: Tomcat Start Stop Restart # processname: tomcat # chkconfig: 234 20 80 JAVA_HOME=/usr/java/jdk1.8.0_151 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH CATALINA_HOME=/usr/local/tomcat case $1 in start) sh $CATALINA_HOME/bin/startup.sh ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; restart) sh $CATALINA_HOME/bin/shutdown.sh sh $CATALINA_HOME/bin/startup.sh ;; esac exit 0
启动tomcat服务
chmod +x /etc/init.d/tomcat /etc/init.d/tomcat start
创建guacamole配置文件和目录
mkdir /etc/guacamole/
创建guacamole.properties文件
vim guacamole.properties guacd-hostname: localhost guacd-port: 4822 user-mapping.xml: /etc/guacamole/user-mapping.xml
创建授权文件 user-mapping.xml
<user-mapping> <authorize password="123456" username="admin"> <connection name="SRV-OP10-CS01"> <protocol>rdp</protocol> <param name="hostname">172.16.0.10</param> <param name="port">13040</param> <param name="username">administrator</param> <param name="password">6bcr"ZqK*LgD;a</param> </connection> <connection name="SRV-OPS01-LINTEST02"> <protocol>ssh</protocol> <param name="hostname">172.16.2.14</param> <param name="port">22</param> <param name="username">cpzeng</param> <param name="password">Dtihsvkr/Sp8gd4rz</param> <param name="enable-sftp">true</param> <param name="sftp-hostname">127.0.0.1</param> <param name="sftp-root-directory">/data/sftp</param> <param name="sftp-username">sftp</param> <param name="sftp-password">123</param> </connection> <connection name="SRV-OPS01-LINTEST01"> <protocol>ssh</protocol> <param name="hostname">172.16.2.3</param> <param name="port">22</param> <param name="username">cpzeng</param> <param name="password">Dtihsvkr/Sp8gd4rz</param> <param name="enable-sftp">true</param> <param name="sftp-hostname">127.0.0.1</param> <param name="sftp-root-directory">/data/sftp</param> <param name="sftp-username">sftp</param> <param name="sftp-password">123</param> </connection> </authorize> </user-mapping>
每一个用户都有一个独立<authorize></authorize>配置段包起来,还可以使用md5加密的密码
使用明文密码 <authorize password="123456" username="admin"> </authorize> 使用加密的密码 <authorize sername="USERNAME2" password="319f4d26e3c536b5dd871bb2c52e3178" encoding="md5"> </authorize>
要远程连接的主机用<connection></connection>配置段包起来
<connection name="SRV-OPS01-LINTEST02"> <protocol>ssh</protocol> <param name="hostname">172.16.2.14</param> <param name="port">22</param> <param name="username">cpzeng</param> <param name="password">Dtihsvkr/Sp8gd4rz</param> <param name="enable-sftp">true</param> <param name="sftp-hostname">127.0.0.1</param> <param name="sftp-root-directory">/data/sftp</param> <param name="sftp-username">sftp</param> <param name="sftp-password">123</param> </connection>
connection配置中有几个参数是必须的,
protocol :使用的协议,如rdp、ssh、vnc hostname: 主机ip port:端口 username:登录使用的账号 password: 登录密码 enable-sftp:被连接的linux主机开启sftp,需要在linux服务器上配置sftp,下面会讲如何配置 sftp-hostname:sftp服务器的ip,为本机127.0.0.1,我测试过写其他开启了sftp服务器机器ip,最后还是连到本机的sftp上了 sftp-root-directory:登录linux机器后,sftp指定的路径,如果不配置改选项,则默认为/目录,可以使用web界面来选择上传文件的路径, 如果要上传文件,则登录用户要有目标路径的写入权限,比如登录用户为user1,希望将文件上传到/opt/app目录,则user1要对/opt/app目录有写入权限。所有最好指定一个为777权限的路径 sftp-username:sftp登录用户名 sftp-password:sftp密码
使用guacamole
登录guacamole控制台
http://ip:8080/guacamole-0.9.14
这里的账号密码使用/etc/guacamole/user-mapping.xml文件中<authorize></authorize>配置段中的username和password
如上面例子中账号密码为admin/123456,注意<connection></connection>中的username和password是服务器的账户密码
登录后选择要远程连接的机器
上传文件
同时按住control + alt + shift
在Devices标签下点击配置sftp路径(/data/sftp),点击Upload Files按钮,在弹出的窗口选择要上传的文件即可。注意:需要授权用户对目标路径有写入权限,我这里将/data/sftp目录权限设置为777了,之前一直提示无法上传文件,改了权限就正常了
SFTP配置
SFTP是要在每一台linux服务器上进行配置的,你要登录哪台机器,需要上传文件到该机器上,就需要配置SFTP,配置过程如下:
groupadd sftp useradd -g sftp -s /sbin/nologin -M sftp
设置密码:
passwd sftp
创建sftp根目录,即存放文件的目录
mkdir -p /data/sftp chown sftp:sftp /data/sftp chmod 777 /data/sftp
修改sshd_config配置
#Subsystem sftp /usr/libexec/openssh/sftp-server // 注释这一条配置,
新增以下配置
Subsystem sftp internal-sftp Match User sftp X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp ChrootDirectory /data/sftp
以上是关于guacamole免密登录,guacamole不通过登录界面登录,guacamole指定用户名免密登录的主要内容,如果未能解决你的问题,请参考以下文章