一、修改端口
Debian、Ubuntu等系统比较简单
(1)输入下列命令nano /etc/ssh/sshd_config
在修改端口之前,先添加一个端口,找到 Port 进行修改
将Port 22 去掉#
并添加新端口
Port 10022
修改之后,进行保存
(2)重启
systemctl restart sshd
2.Centos稍微复杂点
(1)输入下列命令
nano /etc/ssh/sshd_config
在修改端口之前,先添加一个端口,找到 Port 进行修改
将Port 22 去掉#
并添加新端口
Port 10022
修改之后,进行保存
(2) 向防火墙中添加修改的端口
假设端口修改为12345,向防火墙中添加端口的命令为:
firewall-cmd --zone=public --add-port=12345/tcp --permanent
reaload 防火墙规则:
firewall-cmd --reload
查看端口是否添加成功:
firewall-cmd --zone=public --query-port=17186/tcp
注意: 这里的设置是在 CentOS 7 版本下的操作 , 低于 CentOS 7的版本不支持
防火墙如果未启用,可通过下列命令打开:
systemctl start firewalld
查看防火墙状态:
systemctl status firewalld
(3)向SELinux中添加修改的SSH端口
在向SELinux中添加端口之前需要先安装SELinux的管理工具 semanage (如果已经安装了就直接到下一步) :
yum provides semanage
在这里我们看到运行 semanage 需要先安装其依赖工具包 policycoreutils-python :
yum install policycoreutils-python
安装好之后,可以直接使用 semanage 命令:
查询当前 ssh 服务端口:
semanage port -l | grep ssh
向 SELinux 中添加 ssh 端口:
semanage port -a -t ssh_port_t -p tcp 12345
验证 ssh 端口是否添加成功:
semanage port -l | grep ssh
添加成功之后就可以重启 ssh 服务了:
serivce sshd restart
————————
二、改用密钥登录
以Debian为例:
1.首先打开xshell等工具创建密钥,如xshell->工具(T)->新建用户密钥生成向导(W)
密钥类型: ECDSA 密钥长度选择 521 位->下一步
再次下一步->名称可修改,这里默认 id_ecdsa_521 接着输入给密钥设的密码->下一步
保存为文件,默认在..Xshell\Sessions文件夹中,文件名 id_ecdsa_521.pub
2.上传以及测试
cd /root/.ssh/
- 安装上传工具
apt-get install lrzsz
- 上传
rz -be
- 查看是否上传成功
ls
authorized_keys id_ecdsa_521.pub
如果没有authorized_keys 需要先创建
touch authorized_keys && chmod 700 /root/.ssh/ && chmod 600 /root/.ssh/authorized_keys cat id_ecdsa_521.pub >> authorized_keys && chmod 600 authorized_keys
- 如果碰到.ssh文件夹不存在
ssh localhost -p 21755
- 如果没改过端口 就是ssh localhost
输入yes
输入root密码
- 如果提示密钥没在电脑上注册
root目录下键入以下命令
chmod 700 .ssh
cd .ssh
chmod 600 *
service sshd restart
断开ssh,重新连接,使用密钥登录
3.禁止密码登录
注意:验证了密钥能正常登陆之后,再执行以下步骤(避免无法远程连接服务器)
这三条可以一起复制在xshell中执行
sed -i 's/^#\?\(PubkeyAuthentication\s*\).*$/\1yes/' /etc/ssh/sshd_config; sed -i 's/^#\?\(PasswordAuthentication\s*\).*$/\1no/' /etc/ssh/sshd_config; sed -i 's/^#\?\(ChallengeResponseAuthentication\s*\).*$/\1no/' /etc/ssh/sshd_config
Restart SSH service
systemctl restart sshd
如果禁止密码登录失效(常见于ubuntu)
删除50-cloud-init.conf文件或者在50-cloud-init.conf配置文件中配置禁止密码登陆参数
vim /etc/ssh/sshd_config.d/50-cloud-init.conf
(1)修改为
PasswordAuthentication no
PubkeyAuthentication yes
(2)保存退出 然后重启SSH
systemctl restart ssh
完毕。
评论 (0)