更新时间:2023-01-10 10:30:22浏览次数:507+次
本文介绍在Linux系统上安装ShellHub的方法,并使用ShellHub为Linux系统配置集中式SSH,为了发挥最佳的作用,要确保系统上安装了Docker Engine和Docker Compose。另外,端口22和80可用并在防火墙上打开。
安装Docker相关环境的参考
如何在Ubuntu 22.04系统上安装Docker CE:https://www.hmxthome.com/linux/4941.html
在Ubuntu 22.04/Debian 11上安装Docker Compose:https://www.hmxthome.com/linux/4942.html
安装后,确保服务已启动:
sudo systemctl start docker && sudo systemctl enable docker
此外,将系统用户添加到docker组:
sudo usermod -aG docker $USER
newgrp docker
另外,安装docker Compose后,还要确保安装了所需的软件包:
##在CentOS/RHEL/Rocky Linux/Alma Linux上
sudo yum install make -y
##在Debian/Ubuntu上
sudo apt install make -y
允许端口80和22通过防火墙:
##用于Firewalld
sudo firewall-cmd --add-port={22/tcp,80/tcp} --permanent
sudo firewall-cmd --reload
##对于UFW
sudo ufw allow 22
sudo ufw allow 80
如果端口有其他重要的服务正在运行,您可以通过对.env文件进行更改来选择使用其他端口。
在Linux上下载ShellHub
我们将首先从GitHub克隆最新的稳定版本:
sudo apt install build-essential
git clone https://github.com/shellhub-io/shellhub.git
现在导航到目录:
cd shellhub
echo "SHELLHUB_ENV=development" >> .env.override
进入目录后,使用以下命令创建所需的键:
$ make keygen
Generating RSA private key, 2048 bit long modulus (2 primes)
................+++++
................+++++
e is 65537 (0x010001)
writing RSA key
Generating RSA private key, 2048 bit long modulus (2 primes)
................+++++
................+++++
e is 65537 (0x010001)
在Linux上安装ShellHub
对于这个部署,有几个docker compose文件用于各种环境。然而,我们建议避免直接使用docker compose,除非您确定自己正在做什么。
使用默认值启动部署的最简单方法是执行以下命令:
make start
样本输出:
完成后,验证容器是否正在运行:
$ docker ps
您还可以使部署适合您的环境。
访问ShellHub Web UI
根据所做的部署,您可以使用IP地址或域名通过HTTP或HTTPS访问ShellHub Web。
同时,需要创建管理员用户和密码才能登录。这可以通过执行以下命令来完成:
$ ./bin/add-user <username> <password> <email>
记住正确替换值。例如:
$ ./bin/add-user admin StrongPassword admin@computingforgeeks.com
User added!
name: admin
username: admin
email: admin@computingforgeeks.com
可以使用以下命令删除用户:
$ ./bin/del-user <username>
您还可以编辑/重置密码:
$ ./bin/reset-user-password <username> <password>
现在使用创建的用户凭据登录到Web。认证后,将可以进入到控制面板中。
现在添加一个命名空间:
您也可以从命令行执行此操作:
$ ./bin/add-namespace <namespace> <owner>
替换值,例如:
$ ./bin/add-namespace test admin
Namespace added: test
Owner: 63736b67de1792158ce86436
Tenant ID: d2961764-ea74-4aff-8683-cefed4f45b83
要删除命名空间,请使用以下命令:
./bin/del-namespace <namespace>
要将用户添加到命名空间,请执行以下操作:
./bin/add-user-namespace <username> <namespace>
要从命名空间中删除用户,请执行以下操作:
./bin/del-user-namespace <username> <namespace>
使用ShellHub管理设备
安装完成后,您可以添加并连接到基础结构中的各种设备。要添加设备,请选择名称空间并导航到设备选项卡。
然后在安装并运行docker的远程主机上,执行提供的命令:
在设备上安装ShellHub代理后,您需要通过单击通知或在设备->挂起(Devices -> Pending)下接受它。
接下来就连接到设备了。
将设备添加到shellHub后,可以使用两种方法连接到它们。第一个也是最简单的方法是通过网络。导航到“设备”选项卡并选择要连接的设备:
连接后,您可以像在任何其他SSH会话中一样执行命令。
另一种方法是使用SSH客户端。支持的SSH客户端为2.0版及更高版本。这可以使用以下命令完成:
ssh <USER>@<SSHID> -<SSH_PORT>
SSHID是从web获得的。为了使这种方式更好,您可以使用公钥(无需密码)连接到添加的设备。首先,在主机上创建公钥:
$ ssh-keygen -q -N ""
Enter file in which to save the key (/root/.ssh/id_rsa):
查看生成的密钥:
cat ~/.ssh/id_rsa.pub
现在在ShellHub网站上,通过导航到公钥->添加公钥(Public Keys -> Add Public Key),创建一个可用于连接到特定/所有计算机的密钥:
提供公钥并创建密钥。
现在,使用创建的密钥,您可以使用以下命令连接到主机系统中的任何设备:
ssh <USER>@<SSHID> -<SSH_PORT>
在本例中,我将提供端口,因为ShellHub在端口2222上运行:
管理ShellHub实例
ShellHub容器在系统启动时自动启动。只有在端口22和80上启用了其他服务的情况下,它们才会失败。
要将容器升级到较新版本,请使用以下步骤。
首先,导航到ShellHub项目目录:
cd shellhub
停止实例:
make stop
Fetech的最新变化:
git remote update origin
签出最新版本:
git checkout v0.10.3
现在启动实例:
make start
至此,使用ShellHub为Linux系统配置集中式SSH的内容就讲完了。