ubuntu修改ssh配置文件(ubuntu2004修改ssh端口)
修改ssh服务器默认端口
查看当前ssh服务器默认端口
sudo netstat -tunlp | grep "ssh"
修改默认ssh服务器端口
找到ssh服务器的配置文件,ubuntu系统为/etc/ssh/sshd_config,使用下面的命令修改
sudo vim /etc/ssh/sshd_config
找到Port 22? ? 这个的意思就是22为现在登陆ssh服务器可以访问的端口
再添加一个Port 10000~65535区间的端口号,防止被系统或者其他软件占用
修改完配置文件后,需要重启一下ssh服务(最好也重启一下服务器),让其新的监听端口生效,使用下面命令
systemctl restart sshd
shutdown -r now
尝试通过刚刚你设置的端口登陆ssh
ssh root@localhost(ip地址) -p xxxxx(端口号)
登陆上后,将刚刚sshd_config中的Port22注释掉就行了
把服务器防火墙的22端口删除即可
ubuntu系统网络配置&ssh配置
该配置环境为ubuntu16.04.2
(一) 网络配置
安装完成系统后网络配置如下:
第一步:ifconfig -a 查看有几个网卡
如下截图表示有四个网卡
第二步:找出接线网卡
执行命令:ifconfig +网卡 up
例:up 第一个网卡enp4s0f0
ifconfig enp4s0f0 up
然后执行命令: ethtool enp4s0f0? 查看Link状态,如下截图:
如果是yes表示该网卡已经接线 ,尝试手动配置ip(配置方法请见下一步骤)。如果是no,继续ifconfig up其他网卡,直到找到yes的为止。如果全部是no,请检查网线是否接好
第三步:配置网卡ip(只有临时作用,再次重启服务器配置会失效)
命令:ifconfig enp11s0f1 10.57.23.13/25
说明:配置网卡 enp11s0f1? IP为10.57.23.13 掩码是25位。即255.255.255.128
配置好截图如下:
第四步:检测连通性
尝试ping 网关,如果网关不通,表示直连不通,请检查网线和配置。网关通,接着配置默认路由,见第五步
第五步:配置路由(临时,重启后失效)
route add default gw 10.57.23.1 (默认配置这一条后,内网可以正常访问),如果不能,添加如下明细:
route add -net 10.0.0.0/8 gw 10.57.23.1
route add -net 192.168.0.0/16 gw 10.57.23.1
route add -net 172.16.0.0/12 gw 10.57.23.1
route add -net 100.64.0.0/10 gw 10.57.23.1
第六步:写入配置文件(永久)
注:一定要写入配置文件
ubuntu为何不直接在最开始写入配置文件里。因为ubuntu直接写入配置文件,不重启服务器貌似不生效(个人经验)
vim /etc/network/interfaces 可以直接在这里修改,具体配置如下:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp11s0f1? ? ?
iface enp11s0f1 inet static
address 10.57.23.13
netmask 255.255.255.128
gateway 10.57.23.1
####添加路由,这样网卡服务重启之后这些路由就会加载
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.57.23.1
up route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.57.23.1
up route add -net 172.16.0.0 netmask 255.240.0.0 gw 10.57.23.1
up route add -net 100.64.0.0 netmask 255.192.0.0 gw 10.57.23.1
重启网卡服务之后,配置的路由会自动加载,如下:
(二) 修改ssh 配置文件
ubuntu系统安装,默认是禁止root直接登录的
vim /etc/ssh/sshd_config
修改:PermitRootLogin yes
然后重启ssh服务 /etc/init.d/ssh restart
ubuntu配置ssh server
ubuntu版本是Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64),所有操作在一台机器上进行。
1. 安装:
sudo apt-get install openssh-server
2. 启动ssh服务:
sudo /etc/init.d/ssh start
3. 以账号密码ssh登录(不安全):
ssh root@localhost
???? 通过以上命令以root身份登录会失败,第一是配置中默认不允许通过密码登录,另外是root密码由系统设置,需要先设置密码。root身份涉及到安全,一般强烈不建议这么做。但是我们为了研究一下,就是要用root身份登录怎么办?
1)修改登录配置。
sudo vim /etc/ssh/sshd_config
??? 打开这个配置文件后,找到配置项PermitRootLogin,当前的设置是prohibit-password。
PermitRootLogin prohibit-password
??? 我们修改一下,设置为允许root身份以密码登录。
PermitRootLogin yes
#PermitRootLogin prohibit-password (这行保留,仅仅只是注释掉)
??? 修改完成后,重启ssh服务生效。
sudo /etc/init.d/ssh restart
2)修改root密码。
hhh:~$ sudo passwd
[sudo] password for hhh:
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
hhh:~$
??? 按照以上命令成功修改后,就可以用root身份本地登录了。验证一下,用su命令后提示输入密码,成功登录后提示符从$变为#,说明进入root模式。通过exit可以退出root模式,退出后提示符又变回$。
hhh:~$ su
密码:
root@hhh:~# exit
exit
hhh:~$
3)以root身份ssh登录本机
hhh:~$ ssh root@localhost
root@localhost's password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation:?
* Management:? ?
* Support:? ? ? ?
1 个可升级软件包。
0 个安全更新。
*** 需要重启系统 ***
Last login: Fri Apr 14 09:58:03 2017 from 127.0.0.1
root@hhh:~#exit
注销
Connection to localhost closed.
??? 登录成功,试验完毕。为了回到安全状态,执行sudo vim /etc/ssh/sshd_config,将原来注释掉的PermitRootLogin prohibit-password
打开,新添加的yes选项注释掉或者删掉。
4. 以公钥认证ssh登录
1)在客户端生成密钥对。
hhh:~$ ssh-keygen -t rsa -C "hhh@le.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hhh/.ssh/id_rsa): /home/hhh/.ssh/ida_rsa_hhh
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hhh/.ssh/id_rsa_hhh.
Your public key has been saved in /home/hhh/.ssh/id_rsa_hhh.pub.
The key fingerprint is:
SHA256:zB/IVbBNJ4hcdYXEiBN4eZTmvjSp7M9M889lTS1K5ZQ hhh@le.com
The key's randomart image is:
+---[RSA 2048]----+
|? ? ? . ++O*=+o.|
|? ? ? ? + *==+o. |
|? ? ? ? .o=. E? |
|? ? ? + o? .+? .|
|? ? ? ? S ....o o|
|? ? ? ? . o=. o.|
|? ? ? ? ..o+o? +|
|? ? ? ? ? o+.o o.|
|? ? ? ? ...+ ..o|
+----[SHA256]-----+
? ? 密钥文件默认存放在当前用户目录下的.ssh目录下,公钥文件是id_rsa.pub,私钥文件是id_rsa。如果之前已经生成过密钥对,需要重新指定文件路径存放新的密钥对,如上所示,将文件路径重新指定为/home/hhh/.ssh/ida_rsa_hhh。
2)将公钥上传到对应服务端
??? 需要将客户端生成的公钥上传到服务器,并且拷贝到对应用户的.ssh目录下。我们这里是本地登录,客户端用户账号和服务端要登录的账号是同一个账号,所以这一步就省略掉了。然后,将公钥放入到授权文件中。
cd ~/.ssh
cat id_rsa_hhh.pub authorized_keys
chmod 0600 authorized_keys(仅允许本用户读写,否则可能被修改)
3)尝试ssh登录普通账号并退出
ssh hhh@localhost
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation:?
* Management:? ?
* Support:? ? ? ?
1 个可升级软件包。
0 个安全更新。
*** 需要重启系统 ***
Last login: Thu Apr 13 17:28:07 2017 from 127.0.0.1
hhh:~$ exit
注销
Connection to localhost closed.
5. 尝试ssh登录root账号
hhh:~$ ssh root@localhost
root@localhost's password:
Permission denied, please try again.
??? 无法登录。这里要解决两个问题,一个配置成可以root登录,另一个是要配置公钥文件。
??? 首先,修改配置文件。sudo vim /etc/ssh/sshd_config, 找到PermitRootLogin,将其后面no改为yes。
??? 其次,类似普通用户的公钥文件配置,在/etc/ssh目录下做一个类似~/.ssh目录下的authorized_keys文件。此处,我们可以简单拷贝这个文件过来。sudo cp ~/.ssh/authorized_keys /etc/ssh/authorized_keys。这个authorized_keys里面如果存有多个公钥,将会带来安全隐患,所以要按需拷贝,此处只是为了省事,就直接把文件拷贝过来了。
??? 再次试验,成功登录并退出。
hhh:~
$ ssh root@localhost
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation:?
* Management:? ?
* Support:? ? ? ?
1 个可升级软件包。
0 个安全更新。
*** 需要重启系统 ***
Last login: Fri Apr 14 13:51:38 2017 from 127.0.0.1
root@hhh:~# exit
注销
Connection to localhost closed.
hhh:~$
??? 试验结束,记得将原来的配置文件改回去并重启ssh服务。
Ubuntu允许root远程登录配置
1.背景
近期在本地的虚拟机VMware上安装了Ubuntu Server 17.04,由于系统是无界面的,所有操作都需要通过Linux命令进行操作。后来不想直接在服务器上操作,想通过远程工具Xshell去访问Linux系统。却发现根本连接不上。后来查资料,原来需要在Ubuntu上安装SSH协议软件,因为Ubuntu默认是不安装SSH服务的。安装了SSH服务后发现其他用户可以通过Xshell远程访问了,root用户访问会报密码被拒绝的错误,上网查资料,发现Ubuntu默认是不开启root远程登录的,需要设置一下。
2.实现
(1)检查是否开启SSH服务
命令:ps -e|grep ssh 查看SSH服务是否开启,或者通过命令:service sshd status 可以查看某个服务的状态。
(2)安装SSH服务
通过apt-get 安装,命令:apt-get install ssh
(3)启动SSH服务
命令:sudo /etc/init.d/ssh start
(4)修改SSH配置文件
命令:sudo vim /etc/ssh/sshd_config,找到PermitRootLogin without-password 修改为PermitRootLogin yes
(5)重启SSH服务
命令:service ssh restart
