新开了vultr的debain 12的linux系统,我记录下完整的ssh设置过程,供自己与大家后面重复使用时参考。
系统配置
root用户登录
首先使用vps部署时的root密码用ssh登录到vps,在终端机运行。
ssh root@<vps ip>
新建账户并赋权
主要是新建一个普通账户,并给其sudo的权限。
在ssh远程连接的vps主机中执行。
adduser <user name>
会提示输入用户密码与用户信息,按提示完成输入。
给该用户sudo的权限。
usermod -aG sudo <user name>
测试设置的情况。
在终端机中新开一个独立的bash终端窗口。
里面连接新用户的bash。
ssh <user name>@<vps ip>
在连接到新用户的ssh vps主机后,
sudo whoami
如果输出是root,说明权限生效了。
修改vps的ssh配置
然后回到root用户的ssh终端窗口里面。
打开ssh规则文件并修改。
nano /etc/ssh/sshd_config
将里面的一下几条改成:
# 1. 允许公钥登录
PubkeyAuthentication yes
# 4. 禁止空密码
PermitEmptyPasswords no
然后重新ssh服务。
sudo systemctl restart ssh
ssh配置
终端机生成与传送密钥
ssh-keygen -t ed25519 -C "你想的备注内容"
然后输入位置与phase等等,我的位置都放在~/.ssh/下面但是不用默认的名称。
通过ssh copy工具直接将公钥复制到vps上去。
ssh-copy-id -i ~/.ssh/<pub key file full name> <user name>@<vps ip>
测试登录
在终端机上尝试用新用户登录
ssh -i <私钥的名称含路径> <user name>@<vps ip>
如果能进vps说明ssh密钥配置ok。
配置ssh默认配置
在终端机的ssh默认目录,一般是~/.ssh/,中编辑其中的config文件
nano ~/.ssh/config
里面追加下面的配置内容:
# name是你想要的vps的别名
Host <name>
HostName <ip> # VPS 的真实 IP 或 域名
User <user name> # 登录用户名(root 或其他普通用户)
Port 22 # SSH 端口(如果是默认22可以不写)
IdentityFile ~/.ssh/<私钥名称> # 指定使用的私钥路径
ServerAliveInterval 60 # 保持连接,防止闲置掉线(可选推荐)
ServerAliveCountMax 3 # 掉线重试次数(可选推荐)
尝试用上面的配置文件登录,先退出vps终端,输入exit退出。
然后在终端机上重新登录。
ssh <name>
正常就应该用你的name配置的ssh配置块中的内容登录到新用户的vps中了。
收尾与确认
如果确认上面的新用户是可以登录的,就可以做收尾与确认。
修改vps的ssh安全配置
# 2. 禁止 root 账号直接通过 SSH 登录
PermitRootLogin no
3. 禁止使用纯密码登录(强制走密钥)
PasswordAuthentication no
这里禁用了root的ssh登录,也禁用了密码的ssh登录。
是否禁用密码的ssh登录,可以视自己的需求确定。