在 Tiny Core Linux 上使用 openSSH 配置 SSH 服务

本文主要参考并翻译自 Pradeep Singh 发布于 IOT BYTES 的文章《Configure SSH Server on Tiny Core Linux using openSSH》,并在此基础上根据我的实践过程进行修改和完善。对此向 Pradeep Singh 表示感谢!

默认安装 Tiny Core(Core)Linux 系统并没有任何默认安装的 SSH 服务,这意味着您无法通过 ssh 登录来远程配置这个极为简单的操作系统。如果您希望在无界面运行的机器上运行 Tiny Core 并希望通过 ssh 登录会话远程配置它,请按照本文在 Tiny Core 上配置 SSH 服务器。


文章目录

    • 第一部分:安装和配置 SSH 服务
        • 1. 安装 OpenSSH 包
        • 2. 使用模板创建 SSH 配置文件
        • 3. 启动 SSH 服务
        • 4. 更改默认用户 "tc" 的密码
        • 5. 检查IP地址
        • 6. 验证 SSH 服务
        • 7. 使用 SSH 客户端
    • 第二部分:使SSH配置持久化
        • 1. 编辑启动文件
        • 2. 编辑 ' .filetool.lst ' 文件
        • 3. 备份 ' .filetool.lst ' 文件中定义的配置
    • 第三部分:自动化安装脚本


第一部分:安装和配置 SSH 服务

1. 安装 OpenSSH 包

使用以下命令安装 OpenSSH 软件包:

tce-load -wi openssh

2. 使用模板创建 SSH 配置文件

使用以下命令将示例配置文件复制到 ssh_config 文件中:

sudo cp /usr/local/etc/ssh/sshd_config.orig /usr/local/etc/ssh/sshd_config

原文说明的是将 ssh_config.example 和 sshd_config.example 分别复制到 ssh_config 和 sshd_config ,但我发现实际文件是 ssh_config.orig 和 sshd_config.orig ,不过具体操作是一样的,并且实际上复制 sshd_config.example 就可以运行了,所以可以根据实际情况自行修改命令。

3. 启动 SSH 服务

使用以下命令启动 SSH 服务:

sudo /usr/local/etc/init.d/openssh start

4. 更改默认用户 “tc” 的密码

更改默认用户 “tc” 的密码,以便您可以在 ssh user/password 的提示框下输入此密码。使用以下命令以更改密码:

echo tc:password | sudo chpasswd

注意:如果要更改 root 密码,可以使用以下命令以更改 root 更改密码:

echo root:password | sudo chpasswd

5. 检查IP地址

要进入您的 Tiny Core 主机,您需要分配给它的 IP 地址。您可以使用以下命令获取 IP 地址:

ifconfig

此处假设您正在使用DHCP服务器。如果您不是,请在 Tiny Core 主机配置好静态IP。

6. 验证 SSH 服务

您可以使用以下命令检查您的计算机是否正在侦听端口 22 :

tc@box:~$ ps | grep ssh 
  1339 root     /usr/local/sbin/sshd 
  1350 tc       grep ssh
tc@box:~$ sudo netstat -anp | grep 22 
tcp         0       0 0.0.0.0:22               0.0.0.0:*               LISTEN       1339/sshd 
netstat:/proc/net/tcp6: No such file or directory
netstat:/proc/net/udp6: No such file or directory
netstat:/proc/net/raw6: No such file or directory

7. 使用 SSH 客户端

您可以在 Linux 客户端主机上使用 “ssh tc@IP_Address” 命令登录到您的 Tiny Core 实例,或者在 Windows 客户端主机上使用类似 Putty 客户端进行SSH登录。


第二部分:使SSH配置持久化

由于Tiny Core Linux 运行在系统内存(RAM),如果系统重新启动,它将丢失所有配置的更改。要使配置持久,您可以按照以下步骤操作:

1. 编辑启动文件

要使每次启动计算机时加载库或执行命令,都需要将其添加到 ‘/opt/bootlocal.sh’ 文件中。
首先要使用以下的命令编辑 ‘/opt/bootlocal.sh’ 文件的权限以让其可以被编辑:

sudo chmod -R 777 /opt/bootlocal.sh

使用以下命令使系统重启后自动修改默认用户密码:

sudo echo 'echo tc:password | chpasswd' >> /opt/bootlocal.sh

使用以下命令使系统重启后自动使用模板创建 SSH 配置文件:

sudo echo 'sudo cp /usr/local/etc/ssh/sshd_config.orig /usr/local/etc/ssh/sshd_config' >> /opt/bootlocal.sh

使用以下命令使系统重启后自动启动 SSH 服务:

sudo echo '/usr/local/etc/init.d/openssh start&' >> /opt/bootlocal.sh

使用以下命令显示 ‘/opt/bootlocal.sh’ 文件的最终结果:

tc@box:~$ cat /opt/bootlocal.sh
#!/bin/sh
# put other system startup commands here
echo tc:password | chpasswd
sudo cp /usr/local/etc/ssh/sshd_config.orig /usr/local/etc/ssh/sshd_config
/usr/local/etc/init.d/openssh start&

2. 编辑 ’ .filetool.lst ’ 文件

文本文件 ‘/opt/.filetool.lst’ 列出了要在断电时备份的文件和目录(需手动使用 ‘filetool.sh -b’ 命令)并在重新启动后(自动)恢复。使用以下 2 个命令将 SSH 和密码影子文件路径添加到此文件:

sudo echo '/usr/local/etc/ssh' >> /opt/.filetool.lst 
sudo echo '/etc/shadow' >> /opt/.filetool.lst

使用以下命令显示 ’ .filetool.lst ’ 文件的最终结果:

tc@box:~$ cat /opt/.filetool.lst
/usr/local/etc/ssh
/etc/shadow

3. 备份 ’ .filetool.lst ’ 文件中定义的配置

Tiny Core 包含 ‘filetool’ 实用程序,用于使用 ‘/opt/.filetool.lst’ 路径中的定义保存个人设置和数据。您可以使用以下命令触发备份:

filetool.sh -b

以下是此命令的控制台输出:

tc@box:~$ filetool.sh -b
Backing up files to /mnt/sda1/tce/mydata.tgz/
Done.

以上步骤完成后,您就可以尝试使用以下命令重新启动系统以测试 SSH 服务是否仍然有效:

sudo reboot 

第三部分:自动化安装脚本

结合第一、二部分,可以编写一份自动化安装脚本:


##################################################################################
##
## install_ssh.sh
##
## by JunchengLai
## from https://github.com/junchenglai/Tiny-Core-Linux/blob/master/install_ssh.sh
##
##################################################################################

# 安装 OpenSSH 包
tce-load -wi openssh

# 使用模板创建 SSH 配置文件
sudo cp /usr/local/etc/ssh/sshd_config.orig /usr/local/etc/ssh/sshd_config

# 启动 SSH 服务
sudo /usr/local/etc/init.d/openssh start&

# 更改默认用户 “tc” 的密码
echo tc:password | sudo chpasswd

# 编辑 ’.filetool.lst’ 文件
sudo echo '/usr/local/etc/ssh' >> /opt/.filetool.lst 
sudo echo '/etc/shadow' >> /opt/.filetool.lst

# 编辑启动文件
sudo echo 'echo tc:password | chpasswd' >> /opt/bootlocal.sh
sudo echo 'sudo cp /usr/local/etc/ssh/sshd_config.orig /usr/local/etc/ssh/sshd_config' >> /opt/bootlocal.sh
sudo echo 'sudo /usr/local/etc/init.d/openssh start' >> /opt/bootlocal.sh

# 备份配置
sudo filetool.sh -b

使用以下命令就可以部署 SSH 服务:

sudo echo 'nameserver 114.114.114.114' >> /etc/resolv.conf
wget https://raw.githubusercontent.com/junchenglai/Tiny-Core-Linux/master/install_ssh.sh
sudo sh ./install_ssh.sh

版权声明:本文由赖俊成编辑并发布,在注明作者、来源、以及确保文章完整性的前提下,允许完整转发。

你可能感兴趣的:(Tiny,Core,Linux)