SSH Configuration On Server¶
服务端设置¶
1. 首先我们打开SSHD服务配置,打开指定认证用配置¶
将默认注释符(#)去掉即可,内容如下
Protocol 2
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Port:指定端口号为22
Protocol:指定ssh协议版本为2
PermitRootLogin:允许root账号登录
RSAAuthentication:开启rsa安全验证
PubkeyAuthentication:开启公钥认证
AuthorizedKeysFile:设置用户公钥文件存储位置
2. 接着保存并重启SSHD服务,让配置生效¶
由于AuthorizedKeysFile设置的公钥存放路径是.ssh/authorized_keys,实际上是home目录下用户目录,而我们是用git用户,所以目标目录应该是/home/git/.ssh/authorized_keys
3. 创建完成后将拥有者修改为git¶
客户端设置¶
1. 首先,在客户端创建一个SSH连接密钥,指定验证方式是RSA (默认为DSA加密算法)¶
创建了公钥和私钥,会提示保存位置,如不想改变密钥位置且无密码,几次确认后,和Linux类似,会保存到当前用户下的.ssh目录,默认为id_rsa和id_rsa.pub文件。2. 接着,将客户端公钥导入服务器端(将IP替换为服务器IP地址)¶
3. 确认时还需要输入git用户密码,成功后回到服务器端查看是否存在authorized_keys文件,并修改权限¶
4. 客户端上再次clone仓库(将IP替换为服务器IP地址,仓库目录改成指定仓库目录),测试是否成功¶
5. 成功后,限制git用户通过SSH登录服务器,编辑/etc/passwd文件¶
找到git用户的记录,将其中默认的/bin/bash改更为/bin/git-shell,实际如下6. SSH修改端口号¶
使用ssh默认的端口号存在不安全,被暴力破解的风险,为提高安全性,考虑修改ssh端口号。
(1). 修改/etc/ssh/sshd_config
¶
参考第一步,修改文件中Port
后面的端口号为XXX
,切勿与其他服务冲突
(2). 打开防火墙¶
防火墙默认阻断所有端口,需要打开ssh的新端口
firewall-cmd --zone=public --add-port=XXX/tcp --permanent
(3). 设置SELinux¶
在启用SELinux的系统上,未正确配置SELinux将导致sshd服务因权限不足无法正常开启。
semanage port -a -t ssh_port_t -p tcp XXX
- 上述
XXX
均为端口号
REF¶
[1]. https://zhuanlan.zhihu.com/p/40371444
[2]. https://liqimore.com/2020/change-default-ssh-port-for-centos/