-
Spring Boot支持集成一个称为'CRaSH'的Java shell。你可以在CRaSH中使用ssh或telnet命令连接到运行的应用。为了启用远程shell支持,你只需添加 spring-boot-starter-remote-shell 的依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-remote-shell</artifactId> </dependency>
注:如果想使用telnet访问,你还需添加对 org.crsh:crsh.shell.telnet 的依赖。
连接远程shell
-
默认情况下,远程shell监听端口2000以等待连接。默认用户名为 user ,密码为随机生成的,并且在输出日志中会显示。如果应用使用Spring Security,该shell默认使用相同的配置。如果不是,将使用一个简单的认证策略,你可能会看到类似这样的信息:
Using default password for shell access: ec03e16c-4cf4-49ee-b745-7c8255c1dd7e
Linux和OSX用户可以使用 ssh 连接远程shell,Windows用户可以下载并安装PuTTY。
$ ssh -p 2000 user@localhost
user@localhost's password:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.BUILD-SNAPSHOT) on myhost
- 输入help可以获取一系列命令的帮助。Spring boot提供 metrics , beans , autoconfig 和 endpoint 命令。
远程shell证书
- 你可以使用 shell.auth.simple.user.name 和 shell.auth.simple.user.password 属性配置自定义的连接证书。也可以使用Spring Security的AuthenticationManager处理登录职责。
扩展远程shell
- 有很多有趣的方式可以用来扩展远程shell。