前言
- ssh 默认登录需要输入密码,如果有多台机器,且密码都不一样,那么登录的次数多了还是挺折磨的;本着能偷懒就偷懒的原则,给家里的机器和服务器都配上密钥登录,再配合 Windows 的终端 terminal 可不敲命令就能 ssh 登录到机器上
环境
本地机器:Windows 11
远程登录机器:OpenWrt,NAS 群晖,Ubuntu
前提
- 创建本地 ssh 密钥
打开终端 terminal
输入命令
1
ssh-keygen -t rsa
点击三次 Enter 确定,下一步即可
当前目录下的 .ssh 文件夹中,id_rsa 为私钥,id-rsa.pub 为公钥
OpenWrt
OpenWrt 的免密验证文件是
/etc/dropbear/authorized_keys如果有此文件,将本地的 ssh 公钥添加到文件中即可
如果没有此文件,可用以下命令直接复制本地的公钥,存到 OpenWrt 中,并改名为 authorized_keys
1
scp ~/.ssh/id_rsa.pub [email protected]:/etc/dropbear/authorized_keys
注:本地公钥的目录,以及 OpenWrt 的 ip 需按实际来修改
NAS
首先 ssh 登录到群晖上,如果当前用户目录下没有 .ssh 文件夹,用以下命令创建
1
sudo mkdir ~/.ssh
用以下命令创建或者打开 authorized_keys 文件,并将本地的公钥粘贴进去
1
sudo vim ~/.ssh/authorized_keys
提升权限
1
2
3sudo chmod 755 ~
sudo chmod 600 ~/.ssh/authorized_keys
sudo chmod 700 ~/.ssh打开 sshd_config 配置文件
1
sudo vim /etc/ssh/sshd_config
修改上述文件中以下几个配置
1
2
3RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Ubuntu
确认服务器已经安装 sshd 服务,并且正常运行
1
sudo service sshd status
显示 Active: active(running) 即为正常,否则需用以下命令安装
1
sudo apt-get install -y openssh-server
将本地公钥添加到 ~/.ssh/authorized_keys 文件中
允许 root 远程登录,允许免密登录,并修改登录端口
1
2
3
4
5
6vim /etc/ssh/sshd_config
# 找到以下配置并修改
Port 22
PermitRootLogin yes
PubkeyAuthentication yes重启 sshd 服务
1
service sshd restart