ssh 笔记

备忘录

本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。

最近发现在局域网下,用主力机控制备用机玩玩命令挺爽的。
但还有一些不便之处,比如 ssh 连接自动断开的频率偏高、需要重复输入密码、ip 经常变动、命令很长很难输……
查完资料进行如下配置,方便后续玩耍。

备用机(联想小新8804F)作为服务端,主力机为客户端。

简单连接

备用机运行以下命令
whoami 查看用户名,返回 u0_a205
ifconfig 查看 ip 地址
passwd 设置密码,确认两遍。(输入过程中不显示字符)
sshd 启动服务

主力机运行
ssh u0_a205@192.168.43.111 -p 8022
输入密码,成功连接。
备用机之前安装过 aria2,所以直接运行 bash aria2.sh 进行启动。
如果有什么需要挂机下载的任务,丢给它就好了。

设置超时断开

备用机配置
备用机在 Termux 下运行

micro $PREFIX/etc/ssh/sshd_config

给 sshd_config 文件加上两行参数

ClientAliveInterval 600
ClientAliveCountMax 6

第一行为服务器端向客户端请求消息的时间间隔,单位 s。
第二行为最大无响应次数。

按照以上配置,600*6=3600 秒,即发现客户端超过 1 小时无响应,则自动断开。

主力机配置
micro .ssh/config
修改 .ssh 文件夹下面的 config 文件,添加以下内容

# 联想小新8804F
Host 8804 # 随便设置的别名
HostName 192.168.43.111
Port 8022
User root
ServerAliveInterval 60
ServerAliveCountMax 10

密钥配对(免密码链接)

主力机生成密钥

ssh-keygen -t rsa -f ~/.ssh/id_rsa.8804 -C "邮箱"

这样一来 .ssh 文件夹下面又多了两个文件,id_rsa.8804.pub 和 id_rsa.8804,不带 pub 的是私钥,不可外泄!
将公钥内容复制后添加到备用机的 .ssh/authorized_keys

运行 ssh 8804,从此无需重复输入密码。

ip 经常变化怎么办?🤔

毕竟我们很难保证只用一种局域网连接方式😣
办法也是有滴:

Host .*
HostName 192.168%h
Port 8022
User root
ServerAliveInterval 60
ServerAliveCountMax 10
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.8804

假如更改连接方式后,备用机的 ip 变成了 192.168.49.1,那么我只要输入 ssh .49.1 ,就能成功连接。

参考
SSH Config 那些你所知道和不知道的事
SSH的config配置之多账号简单管理

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。