ubuntu安装设置bios ubuntu安装设置openssh_服务器

Ubuntu20.04上安装配置openssh-server

本文将介绍在Ubuntu20.04 Desktop上安装并配置使用openssh-server

1. 安装ssh

sudo apt-get install openssh-server

2. 修改配置文件"/etc/ssh/sshd_config"

#使用超级用户权限编辑ssh配置文件
sudo vim /etc/ssh/sshd_config
#/etc/ssh/sshd_config
#其它根据个人需要进行修改,本文只介绍最基本的ssh配置

#Port 22 #ssh的端口设置,建议修改,可以避免端口扫描
Port 22222 #建议修改为5位数的端口,此处 22222 端口仅作为示例,请根据实际自行修改

#PermitRootLogin prohibit-password
PermitRootLogin no #禁止使用root用户连接
  • 若修改过端口设置需要建立防火墙规则
    [注]: 若未修改端口,在启动ssh服务后,客户端依然无法连接到服务器,应该是22端口被防火墙屏蔽所致,需按照以下步骤建立22端口的防火墙入站规则(即将以下22222修改为22)
#若 firewalld 未安装,请先安装
sudo apt-get install firewalld
#设置允许 tcp 22222 端口
sudo firewall-cmd --permanent --add-port=22222/tcp
#设置允许 ssh 服务 (可选)
sudo firewall-cmd --permanent --add-service=ssh
# reload firewall, 更新应用新规则
sudo systemctl reload firewalld

2.1. 补充

执行sudo firewall-cmd --permanent --add-port=22222这条命令时有可能会出现下面这样的错误。

imaginemiracle@:$ sudo firewall-cmd --permanent --add-port=22222
Error: INVALID_PORT: bad port (most likely missing protocol), correct syntax is portid[-portid]/protocol

这是因为给firewall新增许可规则时未声明协议类型,补充协议类型后即可正常设置。([注]:协议类型包括{'tcp'|'udp'|'sctp'|'dccp'} )

sudo firewall-cmd --permanent --add-port=22222/tcp

2.2. 小知识

  • 不小心搞错了怎么办
    若不小心写错了端口号,可以使用下面命令移除添加的相关端口规则
sudo firewall-cmd --permanent --remove-port=22222/tcp
  • 防火墙没开怎么办 “firewallD is not running”
    有时候命令输了半天,敲下回车 Enter,报如下错误则说明防火墙没打开。
firewallD is not running

这个时候只需要打开防火墙即可,打开/关闭的相关命令如下:

# 开启防火墙
imaginemiracle@:~$ sudo systemctl start firewalld
# 关闭防火墙
imaginemiracle@:~$ sudo systemctl stop firewalld
# 查看防火墙状态
imaginemiracle@:~$ sudo systemctl status firewalld

2.4. 验证22222端口是否开启

imaginemiracle@:~$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources: 
  services: dhcpv6-client ssh
  ports: 22222/tcp 		#从这里看出防火墙已允许22222端口通过
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

3. 启动openssh-server

#启动 ssh 服务
:$ sudo /etc/init.d/ssh	start
Starting ssh (via systemctl): ssh.service.
#查看 ssh 服务状态
:$ sudo /etc/init.d/ssh status

如下图,active则表示正在运行

ubuntu安装设置bios ubuntu安装设置openssh_ssh_02

4. 远端连接ssh

#不指定用户连接 [命令: ssh 服务端IP]
ssh 192.168.1.233
#指定用户连接 [命令: ssh UserName@ServerIP]
ssh imaginemiracle@192.168.1.233
#制定端口连接 [命令: ssh -p Port UserName@ServerIP]
ssh -p 22222 imaginemiracle@192.168.1.233

5. 加强防护

若想进一步的保护自己的服务器,很多时候我们只希望允许某一个 IP 的机器或者某段 IP 的机器通过 ssh 访问服务器,这个时候可以利用防火墙来限制。

如,开放指定 IP 可访问 ssh 端口:

sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22222" accept"

开放指定 IP 段可访问 ssh 端口:

sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0" port protocol="tcp" port="22222" accept"

禁止某个 IP 访问 ssh 端口:

sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.101" port protocol="tcp" port="22222" reject"

禁止某个 IP 段的机器访问 ssh 端口:

sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.2.0" port protocol="tcp" port="22222" reject"

设置完成后重新加载防火墙配置规则:

sudo firewall-cmd --reload

查看设置的规则:

sudo firewall-cmd --list-rich-rules

到此!恭喜你又学会了一项技能!