众所周知, termux 上的 sshd 不能通过 IP 连接, 只能使用密钥, 对于使用 PuTTY 的 Windows 用户, 怎么办呢?
由于 PuTTY 支持 telnet, 而 termux 也预装了 telnetd, 只需要输入 telnetd 即可在 8023 端口开启服务, 但是这不安全, 因为不需要任何认证.
于是我想到在 ~/.bashrc 中加入验证:
当然, 这也不是长久之计, 毕竟^c是会中断该程序的.
还得想办法使用 sshd 啊! 经过我的艰苦探索, 终于勉强成功了!
(
当然, 后面知道了防止中断的方法, 在脚本行首写:
trap "echo \""
请输入密码! \"" INT QUIT TSTP
在接收到信号后,可以采取的操作包括:
- 清除文件
- 提示用户是否应当终止脚本
- 忽略该信号
- 进行处理
捕捉信号
要捕捉发送到您的进程的信号,请使用内置的 trap 命令。在捕捉到信号后,正在执行的当前命令会尝试在 trap 接管之前结束执行。如果该命令为 SIGKILL
,那么终止将立即执行。如果忽略某些信号,将执行默认操作。例如,如果只对 SIGINT
执行 trap 命令,但是对 SIGQUIT
不执行任何操作,然后您的进程捕捉到了 SIGQUIT
信号,那么将执行默认操作(很可能是终止您的脚本,而这正是您不希望看到的)。
trap 命令的格式为:
1 | trap 'command_list' signals |
其中,command_list
是一个命令清单,可以包含一个函数,在接收到信号列表中包含的某个信号后运行。而 signals
是将要捕捉的信号的列表。
要忽略某个信号,使用两个单引号代替 command_list:
1 | trap '' signals |
要重置 trap,使用:
1 | trap - signals |
其中,signals
为信号列表。
)
首先使用 PuTTYGen.exe 生成 RSA 密钥, 并将 Private Key 保存.
复制框中的 RSA 公钥, 打开 termux, 添加到 ~/.ssh/authorized_keys
接下来, 使用默认端口 8022 连接 termux, 当然, 你需要使用到刚才保存的私钥.
登录(无需用户名):