Linux使用系列(3) —— 开启SSH远程登录
一. 修改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