笔记:SSH更改端口、禁用密码、使用密钥登陆

  1. 更改端口(范围:1~65535)
    比如更改为22222,首先需要查看22222端口是否开放。
    有多种方式:

    lsof -i:22222 # 必须以root用户执行
    netstat -ntulp |grep 22222 # 查看端口是否开放并查看监听端口的服务
    iptables -L|grep 22222 # 查看iptables规则
    firewall-cmd --list-ports # 查看所有开放的端口
    ufw status verbose|grep 2222
    

    如果未输出或输出的内容中不包含需要的端口,那么即是端口未开放,需要开放端口

    # firewalld方式
    
    # 添加
    # zone一般默认为public 可以不写
    # 查看默认zone
    firewall-cmd --get-default-zone
    # --permanent永久生效,没有此参数重启后失效
    firewall-cmd --zone=public --add-port=22222 /tcp --permanent 
    # 查看
    firewall-cmd --zone=public --query-port=22222 /tcp
    # 删除
    firewall-cmd --zone=public --remove-port=22222 /tcp --permanent
    
    # 添加/删除后 重新载入
    firewall-cmd --reload
    
    # iptables方式
    # centos7版本以下的方式,centos7及更高版本默认为firewalld方式
    # 非要在centos7+用iptables,就关闭 firewalld 服务并安装 iptables-service
    
    # 开放端口
    # 用 iptables -I 而不是 iptables -A
    # iptables -A 是规则末尾追加,可能导致因为已有规则使追加的规则无效
    # iptables -I 是规则开头插入,一般不会出问题
    iptables -I INPUT -p tcp --dport 22222 -j ACCEPT
    iptables -I OUTPUT -p tcp --sport 22222 -j ACCEPT
    
    # 关闭端口(删除规则)
    iptables -D INPUT -p tcp --dport 22222 -j ACCEPT
    iptables -D OUTPUT -p tcp --dport 22222 -j ACCEPT
    
    # 保存,不然服务器重启后会失效
    # centos7+ 不安装 iptables-service 的话,没有该命令
    service iptables save
    
    # 虽然在不安装 iptables-service 的情况下,iptables指令也生效(重启后会失效,因为没有保存的命令)
    # 但是firewalld并不会在其配置文件中记录,届时我们用firewalld命令查看端口会找不到
    
    # firewalld 和 iptables-service是一个层面的东西,它们都基于iptables这个软件
    # 它们的作用是一样的,不必纠结看个人习惯或者业务需求
    
    #  查看iptables软件是否安装(firewalld 和 iptables-service 都是基于它的)
    whereis iptables
    或者
    yum list installed|grep iptables
    

    在端口开放后修改sshd配置文件
    vi /etc/ssh/sshd_config
    找到 #Port 22
    然后插入一行
    Port 22222
    如果22端口还需要监听就取消#Port 22的注释
    保存后重启sshd
    systemctl restart sshd
    或者
    service sshd restart

    重启后查看端口
    netstat -ntulp |grep 22222
    看到sshd在监听说明ssh可以通过22222端口访问了

    查看日志
    centos下 cat /var/log/secure|grep 22222
    debian下 cat /var/log/auth.log|grep 22222
    看到

    Server listening on 0.0.0.0 port 22222.
    Server listening on :: port 22222.
    

    说明无异常
    此时可以通过22222端口ssh访问啦

  2. 启用密钥,禁止密码
    首先生成密钥,有两种方式
    ssh客户端工具和ssh-keygen命令

    客户端以mobaxterm为例:顶部菜单"Tools"下找到"MobaKeyGen",点击进入面板。然后点击"Generate"生成密钥,包括公钥和私钥。
    在要使用密钥的用户主目录的".ssh"目录下新建authorized_keys文件(如果不存在,如/root/.ssh/authorized_keys),把公钥字符串粘贴进去就好。
    然后导出私钥,默认.ppk格式,就是putty软件的那种格式。
    然后在客户端登陆时使用private key 并选择生成的密钥就可以登陆了。

    顶部菜单的"Conversions"可以选择生成其他格式的私钥(比如手机端juicessh需要openssh格式),我们选择"Export OpenSSH key",并将生成的私钥命名为"id_rsa"就行了。

    第二种ssh-keygen命令也很简单
    ssh-keygen -t rsa
    然后一路回车就好,不必输入密钥密码(如果怕私钥泄露可以设置密码,但是要记住,因为设置了密码后,登陆时除了验证私钥,还需要输入密码验证)
    /root/.ssh/目录下会新建两个文件,私钥id_rsa and 公钥id_rsa.pub

    再执行ssh-copy-id -i .ssh/id_rsa.pub -p22222 root@127.0.0.1
    然后输入密码,公钥会自动追加到authorized_keys这个文件里。
    如果执行该命令出现Permission denied (publickey).的错误,看看是不是禁止了密码登陆,不要禁用,等公钥添加完成后再禁用。
    当然,如果不想改配置文件,我们将公钥字符串手动追加(复制粘贴)到authorized_keys文件也是可以的。
    最后我们把生成的私钥下载到本地,在ssh客户端使用就好了。

    禁止密码登陆
    在使用密钥登陆无异常后,打开sshd配置文件
    vi /etc/ssh/sshd_config
    PasswordAuthentication yes改成PasswordAuthentication no
    重启sshd即可生效
    届时,如果我们使用密码登陆会提示:
    No supported authentication methods available (server sent: publickey)
    同时,sshd日志也会写入。

其他问题:
日志不输出:
service rsyslog status查看syslog的状态,发现inactive(因为使sshd监听了未开放的端口,并取消了22的监听导致无法ssh,所以改了下配置文件重启了服务器,syslog并未设置开机启动)
启动syslog就好了
还可以设置其开机启动
centos下
systemctl enable rsyslogchkconfig rsyslog on
执行systemctl list-unit-files|grep rsyslog,看到rsyslog的状态为enabled即是成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352