目录
- 一. 修改SSH配置文件
- 二. 使用Linux创建密钥并且限制登陆方式
一. 修改SSH配置文件
- 因为Linux安装的时候会默认安装openssh,所以基本不需要再次安装。
可以使用命令检查是否已经安装:yum list installed | grep openssh-server
- 用文本编辑器打开配置文件:
/etc/ssh/sshd_config
修改以下项:
# 文本编辑器打开配置文件
nano /etc/ssh/sshd_config
# 取消以下配置的注释
# 监听端口号,为了隐蔽性可以修改,但是需要同步修改防火墙
Port 22
# 监听地址,全部监听
ListenAddress 0.0.0.0
# 使用SSH v2版本
Protocol 2
# 禁用DNS反向解析
UseDNS no
- 需要重启sshd服务:
systemctl restart sshd
- 检查sshd服务是否启动:
systemctl status sshd
- 现在已经可以使用密码远程登陆Linux服务器了,如果有防火墙一定要开启防火墙,否则访问会被拦截。
- 考虑到SSH是要随着系统启动的重要工具,所以建议加入开启自启中。不过安装系统的时候一般Linux会默认加入开机自启。
# 检查是否已经在自启清单
systemctl list-unit-files | grep sshd
# 如果“sshd.service”已经是“enabled”就不需要执行下面的命令
# 加入自启
systemctl enable sshd.service
二. 使用Linux创建密钥并且限制登陆方式
- 进入需要登陆的用户ssh目录:
cd /root/.ssh
,如果没有这个目录,需要先进行登陆才会生成:ssh localhost
- 在客户端生成SSH密钥对,这个不需要说明,流程很简单。
- 上传公钥id_rsa.pub到Linux服务器端的.ssh文件夹中。
- 检查服务器端的.ssh文件夹中是否有authorized_keys文件,如果没有,使用如下方式创建。
# 创建文件
touch authorized_keys
# 赋予权限
chmod 600 /root/.ssh/authorized_keys
- 将上传的公钥追加到公钥数据中:
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
- 再次回到服务器端SSH配置文件,进行配置
# 打开配置文件
nano /etc/ssh/sshd_config
# 修改以下配置
# 启用密码验证
PasswordAuthentication yes
# 启用密钥对验证(配置了密钥会优先使用密钥)
PubkeyAuthentication yes
# 指定公钥库文件
AuthorizedKeysFile .ssh/authorized_keys
# 同时为了保证登陆安全,需要做以下配置
# 登录验证时间为2分钟
LoginGraceTime 2m
# 最大重试次数为6次
MaxAuthTries 6
# 禁止空密码登录
PermitEmptyPasswords no
# 开启远程登录root(手动输入)
PermitRootLogin yes
- 重启sshd服务:
systemctl restart sshd