to be
a problem slover

ubuntu安装openssh服务及配置

概述

本文描述如何安装 openssh server,以及如何配置 sshd 服务

安装

sudo apt-get install openssh-server

设置开机启动

sudo systemctl enable ssh

启动 sshd 服务

sudo systemctl start ssh

测试本地连接

ssh user@localhost

如果使用 root 登录且密码确定没敲错,但还是报Permission denied

root@ubuntu:~# ssh root@localhost
root@localhost's password:
Permission denied, please try again.
root@localhost's password:
Permission denied, please try again.
root@localhost's password:
Permission denied (publickey,password).

可能是设置中不允许 root ssh 登录,所以需要检查一下/etc/ssh/sshd_configPermitRootLogin 设置为 yes 再重试

# Authentication:
PermitRootLogin yes

测试外网连接

通过 ifconfig 查看局域网 ip,通常是 10、172 或 192 开头的,假设说是 10.211.55.21

测试外网 ssh 连接

ssh user@10.211.55.21

如果本地能连通,外网不能连通,首先检查 sshd 的监听端口,是否是 0.0.0.0

root@ubuntu:~# netstat -lntpu | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      21067/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      21067/sshd

如果不是,需要将配置文件/etc/ssh/sshd_config中的ListenAddress设置为 0.0.0.0

如果还是无法登录,再检查防火墙设置,iptablesfirewalld或者阿里云防火墙设置

禁止密码登录(可选)

编辑/etc/ssh/sshd_config文件,

  1. 如果是禁止 root 用户密码登录(但支持证书登录)
# Authentication:
# yes - 允许root登录 no-不允许root登录 prohibit-password-禁止root使用密码登录
PermitRootLogin prohibit-password
  1. 如果是禁止个别用户、用户组
    在最后加上Match段,在里面加上
# disable ssh login by password for some user
Match User user1
    PasswordAuthentication no
    ChallengeResponseAuthentication no
# disable ssh login by password for some group
Match Group group1
    PasswordAuthentication no
    ChallengeResponseAuthentication no
  1. 如果禁止所有用户密码登录,将以下参数都改为 no
PasswordAuthentication no
ChallengeResponseAuthentication no

重启 ssh 服务

systemctl restart ssh

无证书登录时会报错

$ ssh shiming@ubuntu
shiming@ubuntu: Permission denied (publickey).

ssh debug

因为各种奇怪的原因连接不上 ssh 时,可以使用ssh -v user@host.com来进行 debug,可以看到更多的信息帮助排错

赞(4) 打赏
欢迎转载,注明出处:刘世明的博客 » ubuntu安装openssh服务及配置

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下作者

支付宝扫一扫打赏

微信扫一扫打赏