本文主要参考并翻译自 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 ' 文件中定义的配置
- 第三部分:自动化安装脚本
使用以下命令安装 OpenSSH 软件包:
tce-load -wi openssh
使用以下命令将示例配置文件复制到 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 就可以运行了,所以可以根据实际情况自行修改命令。
使用以下命令启动 SSH 服务:
sudo /usr/local/etc/init.d/openssh start
更改默认用户 “tc” 的密码,以便您可以在 ssh user/password 的提示框下输入此密码。使用以下命令以更改密码:
echo tc:password | sudo chpasswd
注意:如果要更改 root 密码,可以使用以下命令以更改 root 更改密码:
echo root:password | sudo chpasswd
要进入您的 Tiny Core 主机,您需要分配给它的 IP 地址。您可以使用以下命令获取 IP 地址:
ifconfig
此处假设您正在使用DHCP服务器。如果您不是,请在 Tiny Core 主机配置好静态IP。
您可以使用以下命令检查您的计算机是否正在侦听端口 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
您可以在 Linux 客户端主机上使用 “ssh tc@IP_Address” 命令登录到您的 Tiny Core 实例,或者在 Windows 客户端主机上使用类似 Putty 客户端进行SSH登录。
由于Tiny Core Linux 运行在系统内存(RAM),如果系统重新启动,它将丢失所有配置的更改。要使配置持久,您可以按照以下步骤操作:
要使每次启动计算机时加载库或执行命令,都需要将其添加到 ‘/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&
文本文件 ‘/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
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
版权声明:本文由赖俊成编辑并发布,在注明作者、来源、以及确保文章完整性的前提下,允许完整转发。