我用的是安卓手机。我编写python程序并在Termux中运行该程序。但是有一些lib不能在Android手机中安装或使用,例如sklearn和tensorflow。所以我决定尝试在我的编程环境中使用 docker 容器。我创建了一个 docker 镜像并将其更新到 docker-hub:zwdnet/mypython。然后我在 Termux 中安装了 qemu?并在 Termux 中安装了 Alpine Linux(alpine-virt-3.10.1-x86_64)。我按照这个页面的方法(是中文博客,不是英文):https : //stageguard.top/2019/08/15/run-docker-on-qemu-alpine/#1-Docker 之后,我使用命令
qemu-system-x86_64 -hda python.img -boot c -m 4096 -netdev user,id=nde1,hostfwd=tcp::2222-:22 -device e1000,netdev=nde1,id=d-net1 -nographic &
Run Code Online (Sandbox Code Playgroud)
在后面启动 alpine linux 并
ssh root@localhost -p 2222
Run Code Online (Sandbox Code Playgroud)
登录。(然后我安装了docker并运行容器成功,这是另一个问题。)现在我想不输入密码登录Apline linux。首先我使用
ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)
生成密钥,并使用
ssh-copy-id -i ./mykey.pub root@localhost -P 2222
Run Code Online (Sandbox Code Playgroud)
将 pub 密钥发送到 Apline linux 并更改 /etc/ssh/sshd_config 文件。最后我重新启动了 sshd 服务并注销。但是当我再次登录时,它要求我再次输入密码。我想可能是因为我用 root 登录。所以我登录并创建一个新用户名,并重复前面的操作符。但我失败了。ssh 要求我再次输入密码。这是我的 ~/.ssh 模型和密钥文件。
$ssh zym@localhost -p 2222 "ls -la"
zym@localhost's password:
total 20
drwxr-sr-x 3 1000 zym 4096 …Run Code Online (Sandbox Code Playgroud)