用好SSH

2020-04-03  本文已影响0人  iStudyBoy

如何实现免密码登陆

1.生成密钥对

# ssh-keygen

提示问题可以直接回车选择默认即可。
Enter passphrase (empty for no passphrase),这个密码的作用是保护本地私有密钥的密码。也就是说,即使有人到用了你的计算机或私钥文件,在使用密钥登录时也会要求输入密码解锁私钥文件。

默认在~/.ssh目录生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。

2.上传公钥到服务器端

# ssh-copy-id -i ~/.ssh/id_rsa.pub xxxx.com

现在我们就可以在客户端直接用ssh xxxx.com来登陆了,本地的公钥文件也可以删除了。

3.进一步配置

修改服务端配置文件,拒绝拒绝密码验证。修改/etc/ssh/sshd_config文件。

PasswordAuthentication yes # 改为no

然后重新启动sshd

# systemctl restart sshd

修改SSH的端口

一、修改ssh配置文件

在/etc/ssh/sshd_config中添加:

Port 22            # 先保留22端口,成功后再删除
Port 12345

安装SELinux的管理工具semanage

# yum provides semanage

再安装运行semanage所需依赖工具包policycoreutils-python

# yum -y install policycoreutils-python

查询当前 ssh 服务端口:

# semanage port -l | grep ssh

向 SELinux 中添加 ssh 端口:

# semanage port -a -t ssh_port_t -p tcp 12345

防火墙放行

# firewall-cmd --zone=public --add-port=12345/tcp --permanent
# firewall-cmd --reload

然后重启 ssh 服务:

# systemctl restart sshd.service

尝试通过10086端口登录SSH,或者进入该服务器直接本地访问SSH如下:

# ssh root@localhost -p 12345

如果成功,说明12345已经完全可以使用了,接下来你就可以根据上述步骤把sshd_configPort22注释掉,SELinux和防火墙关闭22端口就OK!

上一篇 下一篇

猜你喜欢

热点阅读