众所周知, termux 上的 sshd 不能通过 IP 连接, 只能使用密钥, 对于使用 PuTTY 的 Windows 用户, 怎么办呢?

由于 PuTTY 支持 telnet, 而 termux 也预装了 telnetd, 只需要输入 telnetd 即可在 8023 端口开启服务, 但是这不安全, 因为不需要任何认证.

于是我想到在 ~/.bashrc 中加入验证:

termux 开启 sshd-LMLPHP

当然, 这也不是长久之计, 毕竟^c是会中断该程序的.

termux 开启 sshd-LMLPHP

还得想办法使用 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 保存.

termux 开启 sshd-LMLPHP

termux 开启 sshd-LMLPHP

复制框中的 RSA 公钥, 打开 termux, 添加到 ~/.ssh/authorized_keys

termux 开启 sshd-LMLPHP

接下来, 使用默认端口 8022 连接 termux, 当然, 你需要使用到刚才保存的私钥.

termux 开启 sshd-LMLPHP

登录(无需用户名):

termux 开启 sshd-LMLPHP

04-25 10:49