群晖的DSM 本质上也是linux,所以也想把日常管理服务器那一套搬到群晖上来。一般来说不推荐开启root 账户登录,但是我设置的超级复杂密码,每次都要从钥匙串中复制出来非常麻烦,所以直接使用了root 账户了。个人ssh 设置偏好如下。
- 开启root 账户
- ssh 免密登录
- 关闭密码登录
开启root 用户
群晖默认是无法使用root 账户登录的,我们需要手动开启。
使用你的管理员账户 登录ssh,本地的话一般就是
ssh 你的账号@群晖ip -p 你的端口
如果是22 的话就不需要输入-p了
sudo -i
输入密码后取得root权限
vim /etc/ssh/sshd_config
将
PermitRootLogin yes
设置为对应值。然后设置root 密码
synouser -setpw root '你的密码'
重启ssh 服务
systemctl restart sshd
这个时候你就可以使用root 账户直接登录了
ssh root@群晖ip -p 你的端口
使用 ssh-copy-id 设置 ssh 免密登录
首先开启免密登录,使用root 账户登录。
vim /etc/ssh/sshd_config
将
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
设置为对应值后重启ssh 服务
systemctl restart sshd
本文不介绍如何生成密钥和安装ssh-copy-id,因为是通用的随便一搜教程很多,和群晖没啥关系。
ssh-copy-id
可以把本地主机的公钥复制到远程主机的authorized_keys文件上,用来设置免密登录十分方便。需要注意的是ssh-copy-id 默认为22 端口,如果你修改了默认端口号要特殊处理一下。
我是为了省去每次登录都要输入端口号直接修改了电脑上ssh 的设置
vi ~/.ssh/config
加入下面的信息
Host 你的主机地址 HostName 你的主机地址 User root Port 你的ssh 端口号
我这里使用ddns 设置了域名绑定,在路由器的外部网络端口转发中设置号你的ssh 端口就可以使用域名远程登录。添加好配置执行下面命令。
ssh-copy-id root@你的主机
输入密码后再次使用ssh root@你的主机 就可直接免密登录了
关闭密码登录
root 登录ssh
vim /etc/ssh/sshd_config
将
PasswordAuthentication no
设置为对应值后重启服务即可。
systemctl restart sshd
群晖的DSM 做的还是不错的,大部分功能都可以可视化操作,但一些操作还是直接使用命令操作方便。设置完现在我白天远程ssh 远程管理家里的Nas 还是非常方便的,但群晖是设置定制的Debian,和普通的linux 服务器还有一定区别,坑还挺多,我会逐渐分享自己的填坑方法。