本次使用的是niruix/sshwifty
,安装非常简单,首先创建sshwifty
的配置文件:
mkdir /volume1/docker/sshwifty
vi /volume1/docker/sshwifty/sshwifty.conf.json
输入:
{ "Servers": [ { "ListenInterface": "0.0.0.0", "ListenPort": 8182, "TLSCertificateFile": "", "TLSCertificateKeyFile": "" } ], "OnlyAllowPresetRemotes": false }
之后,打开IP:8182
,就可以看到登陆界面了:
不过需要注意的是,登陆SSH
需要用https
,所以即使你通过IP:8082
的方式打开了web
页面,仍然无法连接SSH
,一个简单的方式是通过内网穿透将8082
映射出去,然后在穿透的服务器上做反代。具体不细讲。当然,安全起见,还是加上密码比较好: "SharedKey": "CHANGE_THIS_TO_A_LONG_RANDOM_STRING",
如果希望能够配置免密,则使用下面的,分两种,私钥登录和密码登录:
1、私钥登陆
首先将~/.ssh/id_ed25519.pub
中的内容放到SSH
服务器的~/.ssh/authorized_keys
中,然后,将sshwifty.conf.json
内容改为:
{ "SharedKey": "CHANGE_THIS_TO_A_LONG_RANDOM_STRING", "Servers": [ { "ListenInterface": "0.0.0.0", "ListenPort": 8182, "TLSCertificateFile": "", "TLSCertificateKeyFile": "" } ], "OnlyAllowPresetRemotes": true, "Presets": [ { "Title": "NAS LOCAL", "Type": "SSH", "Host": "192.168.1.1:3", "TabColor": "112233", "Meta": { "User": "ma", "Encoding": "utf-8", "Authentication": "Private Key", "Private Key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNYWMB\n-----END OPENSSH PRIVATE KEY-----\n" } } ] }
注意,Private Key
中的内容来自~/.ssh/id_ed25519
,回车要用\n
表示。
2、密码登录
密码登录比较简单,改为下面的即可:
{ "SharedKey": "CHANGE_THIS_TO_A_LONG_RANDOM_STRING", "Servers": [ { "ListenInterface": "0.0.0.0", "ListenPort": 8182, "TLSCertificateFile": "", "TLSCertificateKeyFile": "" } ], "OnlyAllowPresetRemotes": false, "Presets": [ { "Title": "NAS LOCAL", "Type": "SSH", "Host": "192.168.1.1:3", "TabColor": "112233", "Meta": { "User": "ma", "Password": "xxxxxxx", "Authentication": "Password" } } ] }
配置好文件之后,直接打开SSH
,运行下面的命令即可创建:
docker run --detach --restart unless-stopped --publish 8182:8182 --name sshwifty -v /volume1/docker/sshwifty/sshwifty.conf.json:/etc/sshwifty.conf.json niruix/sshwifty:latest