ssh修改登录端口禁止密码登录并免密登录


author: hjb2722404
head: https://avatars1.githubusercontent.com/u/10215241?v=3&s=460
date: 2016-12-10
title: ssh修改登录端口禁止密码登录并免密登录
tags: : SSH linx远程
category: tech-linux
status: publish
summary: 本文记录在CentOS7中修改ssh登录端口,免密登录ssh以及ssh禁止口令登录的方法,最后达到保证服务器安全的目的。


1.修改ssh登录端口

1.1 登录远程linux主机:

#linux:

$ ssh user@ip -p port
#windows git-bash:

# ssh user@ip port

1.2 修改ssh登录端口

#以下操作在远程linux主机中操作:

$ vi /etc/ssh/sshd_config

找到sshd_config文件中如下选项并修改:

#Port 22

#修改为:

Port 60022 #这里修改为你想要设置的端口,以60022为例

1.3 修改防火墙配置

$ vi /etc/sysconfig/iptabels

添加以下规则

-A INPUT -m state --state NEW -m tcp -p tcp --dport 60022 -j ACCEPT

修改完成后,刷新iptables并重启ssh服务

$ systemctl restart iptables.service
$ systemctl restart sshd.service

此时如果再使用22端口进行ssh连接,就会报错,用60022端口连接才可以建立。

2.免密登录

SSH免密登录利用了rsa密钥对匹配的原理,可以允许用户从本地不用密码就可以访问到远程主机,让我们来看看怎么做。

2.1 本地生成密钥对

# 在本机命令行控制台输入:

$ ssh-keygen

会有提示,连续按三次回车。

此时会在系统用户的.ssh目录下生成一对密钥文件:私钥文件id_rsa和公钥文件id_rsa_pub。

2.2 将本地公钥内容追加到远程主机的授权文件(authorized_keys)中

本地查看id_rsa_pub文件内容:

$ cat ~/.ssh/id_rsa_pub

复制得到的公钥字符串,在远程服务器上编辑authorized_keys文件:

$ vi .ssh/authorized_keys

将刚刚得到的本地公钥字符串添加到该文件的末尾(如果是新建的文件就直接添加)

编辑保存完成后,修改该文件的权限:

$chmod 600 .ssh/authorized_keys

2.3 修改ssh配置

编辑远程服务器上的sshd_config文件:

$vi /etc/ssh/sshd_config

找到如下选项并修改(通常情况下,前两项默认为no,地三项如果与此处不符,以此处为准):


#启用密钥验证
RSAAuthentication yes
PubkeyAuthentication yes
#指定公钥数据库文件
AuthorsizedKeysFile.ssh/authorized_keys

编辑保存完成后,重启ssh服务使得新配置生效:

$ systemctl restart sshd.service

此时,就可以通过ssh命令免除密码直接登录远程主机了,在本地命令行控制台输入:

$ ssh user@ip -p 60022

就可以了(第一次需要输入密码,以后就不用了)

3. 禁止SSH口令登录

为了安全性更高,我们既然已经使用了密钥免密登录,那么就可以直接禁止再使用口令来连接SSH远程主机了。

3.1 更改ssh配置

编辑远程服务器上的sshd_config文件:

$vi /etc/ssh/sshd_config

找到如下选项并修改(通常情况下,前两项默认为no,地三项如果与此处不符,以此处为准):

#PasswordAuthentication yes 改为
PasswordAuthentication no

编辑保存完成后,重启ssh服务使得新配置生效,然后就无法使用口令来登录ssh了

$ systemctl restart sshd.service
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group...
    shuff1e阅读 5,727评论 1 11
  • 安得万里风,飘飖吹我裳。唐 杜甫 《夏夜叹》 摘要 目前使用 git 作为文件版本控制工具的开发者越来越多,同时一...
    FosterDylan阅读 9,456评论 1 4
  • SSH是安全的远程登录,使用SSH v2的协议版本,基于DH算法做密钥交换,基于RSA或DSA实现身份认证。SSH...
    Yi_Feng阅读 4,836评论 0 1
  • 01文:慢慢行走的玄子 真相在哪里你要对真相无限逼近,就是指不要随便相信“被黑的就是内幕,被封的就是真相”。 真相...
    慢慢行走的玄子阅读 1,235评论 0 1