SSH公钥登录且禁止密码登录及更改默认端口

1、ssh生成公私钥

ssh-keygen -t rsa -C "zhangsan@qq.com"
生成密钥的位置如下,id_rsa是私钥、id_rsa.pub是公钥:
➜  .ssh pwd
/Users/xxxxx/.ssh
➜  .ssh ls
config      id_rsa      id_rsa.pub  known_hosts

注意:id_rsa一定不能泄露,否则。。。

2、设置密钥登录

到需要登录的服务器工作目录,把刚刚生成的公钥内容拷贝到,远程服务器下的authorized_keys文件中

[root@xxxxxx .ssh]# ls
authorized_keys  known_hosts
[root@xxxxxx .ssh]#

保存之后退出终端,使用如下语句测试是否能正常登录(不需要输入密码)

ssh root@45.110.28.89

3、禁止密码登录

[root@xxxxxx ssh]# pwd
/etc/ssh
[root@xxxxxx ssh]# vim sshd_config

PasswordAuthentication 改为 no 

4、修改默认端口(22)

[root@xxxxxx ssh]# vim sshd_config

找到#Port 22一行,默认是注释掉的,去掉注释之后填写自己的端口,最大不要超过65535

5、重新加载配置文件后生效

/etc/init.d/sshd reload

6、如果更改端口不能正常连接,请检查一下两点

  • 防火墙是否拦截了请求,具体设置请参考iptables过滤设置服务端口
  • 如果使用的是云VPS,请到管理后台修改安全规则,比如阿里云如下图:

原文地址:https://www.cnblogs.com/maxiaofang/p/7817969.html