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