Centos7之修改ssh端口和秘钥登录

一、修改SSH默认端口22

1、修改/etc/ssh/sshd_config文件中的Port参数,首先将原来#Port=22这行的#号去掉,另起一行同样键入Port=2345。然后保存退出。

2、systemctl  restart sshd服务,然后测试2345端口是否开启,一定要先验证新端口是否可以连接(这里如果不行的话,检查SELinux设置、iptables防火墙设置、firewalld防火墙设置,最直接的方法是直接关闭)

3、最后如果新端口2345能够顺利连接,就可以再去/etc/ssh/sshd_config配置文件中,将Port=22端口加上#号注释掉,别忘记了最后重启一下sshd服务生效。

注意:过程中可以使用netstat -nultp查看端口开放状态,每一步都要验证,避免连接失败,造成不必要的麻烦。

二、使用Xshell进行秘钥登录Centos7操作系统

 大概步骤:

  1、首先需要在被连接的Linux服务器上修改/etc/ssh/sshd_config配置文件中的参数,修改完以后,先不要重启sshd服务。

PasswordAuthentication no        # 不允许密码验证登录
PubkeyAuthentication yes          # 允许公钥验证登录
AuthorizedKeysFile .ssh/id_rsa.pub  # 指定公钥文件路径

  2、在Xshell端口生成一对秘钥,将公钥复制粘贴到Linux服务器的vim /root/.ssh/authorized_keys中。

  

  

  

  

  

   如果你要登录用户家目录下没有.ssh目录,可以通过ssh-keygen命令生成服务端自己的密钥方式让系统自动创建目录,下一步,下一步即可。

  上图中在下拉框中已经看到了公钥,然后全选复制,最后将粘贴到Linux服务器的vim /root/.ssh/authorized_keys文件中。这里需要注意,如果上一步红色字体标注的(Linux服务上未执行ssh-keygen命令话,就找不到/root/.ssh/这个路径,如果没有,可以先执行这个命令。)

  然后给这个文件修改权限为600(如果/root/.ssh/下没有authorized_keys文件,可以手动创建一个。)

chmod 600  /root/.ssh/authorized_keys

  最后,重点是所有设置都完成以后,记得要重启sshd服务。

systemctl  restart sshd

  3、连接测试

  

  

 

   

  

  

  有时候这里输入完密码以后会提示连接失败,再多试试,密码容易输错。

  

  提醒:

    1、如果要改回原来用密码登陆的样子,只改sshd_config配置文件成原样还不够,需要把authorized_keys文件清空再重启sshd服务。

   扩展

  1、为了安全起见,一般情况下都不会开放22端口,哪怕是内网,除非真的没吃过亏,或者公司安全工程师没有找过你。

  2、如果一台服务器经常在一台电脑上需要登录,建议尽量使用秘钥登录,这样等于又上了一把锁。

  3、还有一种例外比较常见,就是先使用root账户创建一个普通用户,再在/etc/ssh/sshd_config下修改PermitRootLogin参数为no(不允许root直接登录),这样的好处就在于普通用户不会像root用户权限那么大,要连续知道两个用户的名字和密码更难,安全等级更完善。

    步骤很简单:

    1、新建一个普通账户,例如Mr.lei,记得一定要使用passwd命令给新建的这个用户加上密码,否则无法登陆。

    2、修改/etc/ssh/sshd_config配置文件中的PermitRootLogin参数,先去除前面的#号键,然后再将后面的yes改成no,保存退出。

    3、重启sshd服务,使用客户端尝试登陆即可。

    

 

 

  

posted @ 2021-04-02 22:05  Charles.L  阅读(1117)  评论(0编辑  收藏  举报