centos7怎么用root直接ssh登入

centos7怎么用root直接ssh登入,第1张

SSH 通常是我们进入新伺服器的第一个应用程式,它也取代了telnet 和rsh 成为管理伺服器的最主要介面。尽管SSH 预设使用加密通讯,登入的密码和通讯内容都不容易被偷窥,预设的设定大致上安全,可惜由于需要兼顾旧用户和旧系统,一些过时和不安全的选项仍然被开启着,在国家级黑客横行无忌的年代,系统中任何一颗松掉的螺丝都会致命,所以我们将会讨论如何加强SSH 的安全性。这一篇只讨论基本的安全配置,比较容易理解,过程也比较简单,对用户的负面影响也比较少,较进阶和较具争议性的安全配置将会留待下一篇讨论。
以下的方法,一部分已经在「安装CentOS 7后必做的七件事」中讨论过,不过为了完整起见,我会重复解说SSH相关的部分,希望大家包涵,不过内容会比较详尽,例如会加入对用户体验的影响,增加技术讨论的篇幅,和比较支持与反对方的意见等等。在该篇文章中与SSH无关的部分例如更改root密码等等,将不会重复讨论,但他们对系统的安全性同样重要,请大家不要忽视。
1 使用第二代通讯协定
SSH的通讯协定分为第一代和第二代,不用多说第二代有更多功能、选项、和更高的安全性,它是在2006 正式由IETF发表,至今已有十年。由于两代SSH协定并不兼容,我们只能二选其一,CentOS 7的SSH预设使用第二代协定,所以无需做任何设定,但我建议在设定档中明确写清楚,开启/etc/ ssh/sshd_config,寻找:
1

ssh是linux系统中一个常用的远程管理工具了,比ftp要强大的我,下面小编来给大家在centos中ssh配置方法吧,希望此教程对各位同学会有所帮助。
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。

统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人
(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据
传给真正的服务器。
而 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。透过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。
系统及版本:CentOS release 53 (Final)
安装SSH
yum install ssh
启动SSH
service sshd start
设置开机运行
chkconfig sshd on
SSH相关配置文件的修改
首先修改SSH的配置文件。如下:
[root@sample ~]# vi /etc/ssh/sshd_config  ← 用vi打开SSH的配置文件
#Protocol 2,1 ← 找到此行将行头“#”删除,再将行末的“,1”删除,只允许SSH2方式的连接
 
Protocol 2 ← 修改后变为此状态,仅使用SSH2
#ServerKeyBits 768 ← 找到这一行,将行首的“#”去掉,并将768改为1024
 
ServerKeyBits 1024 ← 修改后变为此状态,将ServerKey强度改为1024比特
#PermitRootLogin yes← 找到这一行,将行首的“#”去掉,并将yes改为no
 
PermitRootLogin no← 修改后变为此状态,不允许用root进行登录
#PasswordAuthentication yes ← 找到这一行,将yes改为no
 
PasswordAuthentication no ← 修改后变为此状态,不允许密码方式的登录
#PermitEmptyPasswords no  ← 找到此行将行头的“#”删除,不允许空密码登录
 
PermitEmptyPasswords no  ← 修改后变为此状态,禁止空密码进行登录
然后保存并退出。(vi保存退出的命令为ZZ)
因为我们只想让SSH服务为管理系统提供方便,所以在不通过外网远程管理系统的情况下,只允许内网客户端通过SSH登录到服务器,以最大限度减少不安全因素。设置方法如下:
[root@sample ~]# vi /etc/hostsdeny  ← 修改屏蔽规则,在文尾添加相应行
#
# hostsdeny This file describes the names of the hosts which are
# not allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hostsdeny and hostsallow In particular
# you should know that NFS uses portmap!
sshd: ALL  ← 添加这一行,屏蔽来自所有的SSH连接请求
[root@sample ~]# vi /etc/hostsallow  ← 修改允许规则,在文尾添加相应行
#
# hostsallow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server
#
sshd: 1921680  ← 添加这一行,只允许来自内网的SSH连接请求
netstat
-tunlp 查看正在运行的端口号!vim /etc/ssh/sshd_config这个文件,这里把#Port
22这个字段前面的#去掉,再把22改成自己要设的端口就行了,然后重启ssh服务。/etc/initd/sshd
restart假如要限制SSH登陆的IP,那么可以如下做:修改/etc/hostsdeny,在其中加入
sshd:ALL修改:/etc/hostsallow,在其中进行如下设置:sshd:192168024这样就可以限制只有
1921680241的IP通过SSH登陆上LINUX机器了
SSH远程连接配置
1配置IP
#setup
选择 NetWork configuration
选择 Device configuration
选择 eth0
Use DHCP [] 改 为 [ ] 用空格键将去除
Static IP 输入 1921681112
Netmask 输入 2552552550
Default gateway IP 输入 19216811
Primary DNS Server 输入 19216811
2改SSH端口
vim /etc/ssh/sshd_config
#Port 22
去#注释 改 22 为 2200(2000以上)
3重启SSH
/etc/initd/sshd restart
4重启网络
service network restart

/etc/initd/network restart
5查看端口
netstat -lnp|more
6关防火墙
/etc/initd/iptables stop
启动SSH
/etc/initd/sshd start
至此SSH已经可以连接了
输入连接IP
配置相关参数
选择utf-8支持中文显示
自动输入登录用户root
输入用户名后就可以连接到服务器
但是目前我们的SSH连接还需要输入密码,下面将介绍使用密钥进行连接,免去了输入密码的烦恼:
1、在被管理机上生产密钥
[root@localhost ~]# mkdir /root/ssh
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair
Enter file in which to save the key (/root/ssh/id_rsa): ##直接回车默认路径
Enter passphrase (empty for no passphrase): ##输入密码短语
Enter same passphrase again: ##重复密码短语
Your identification has been saved in /root/ssh/id_rsa ##如果在这里报错是因为SeLinux引起的按照Policy:yum install selinux-policy
Your public key has been saved in /root/ssh/id_rsapub
The key fingerprint is:
aa:76:71:1e:51:fe:3b:4c:51:30:b2:90:55:e9:58:7c root@localhostlocaldomain
The key's randomart image is:
+--[ RSA 2048]----+
| ooo+o |
| o+E |
| o+ o |
| o o |
| S |
| o o |
| + o |
| + |
| |
+-----------------+
2、putty生产密钥
打开puttygen,如果没有该程序可以到putty官方网站下载。
点击Generate按钮后出现下图,在红框中不断移动鼠标知道密钥生成完成
点击Generate按钮后出现下图,在红框中不断移动鼠标知道密钥生成完成
上面的大红框就是我们生成的公钥、这个公钥用于放在被管理服务器上,而私钥放在自己的机器上。
Key comment是一个备注信息,如果是企业环境那么会有很多的公钥在一台机器上,为了识别的话一般都会根据每个人的自己定义一个备注。
可以使用邮箱或者工号,输入Key comment先复制下公钥,并点击Saved public Key 和 Saved Private Key保存两个密钥
接着打开密钥代理工具pageantexe(同样可以在putty的官网下载),使用pageantexe有一个很大的好处,如果你还需要使用putty的其他工具那么他们可以共享密钥验证,而不需要反复去设置密钥。
任务栏的pageantexe图标右键选择view keys打开下面窗口。
点击Add key添加刚才保存的私钥。
3、被管理机密钥部署
将被管理机上刚才生产的id_rsapub复制成authrizedkeys
[root@localhost ssh]# cp id_rsapub authrizedkeys
[root@localhost ssh]# chmod 600 authrizedkeys ##这一步是必须的,否则连接不上修改vi /root/ssh/authrizedkeys 删除原来的密钥,添加puttygenexe生产的密钥(也就是前面复制的公钥)
sh-rsa

AAAAB3NzaC1yc2EAAAABJQAAAIEAh+gDpVSNIwBHZvmHS240AoueNHIgDHhczQ/fhiN/IdAQVdh7Ovw2pnJ4sd6so0kqCizsU7FOu2rvaK7vHC3QrrYmeqn94V595pYGLnMCbtEd7ONew47TU8wjtdldbc7liEmkTVIdkCbbrzQa372/u2LSjkldu2BUiXkevlnGNUc=
hellwenwu
~
~
~
~保存退出。
4、打开putty登录
注意看上图中红色部分,如果你是经常连接这台机器的话建议输入IP并配置要后再Saved Sessions里输入识别名称并点击保存按钮,这样在列表框中就会长期保留该服务器的连接配置。

[root@bogon ~]# vi /etc/ssh/sshd_config

[root@bogon ~]# firewall-cmd --zone=public --add-port=22345/tcp --permanent

[root@bogon ~]# firewall-cmd --reload

先安装SELinux的管理工具 semanage (如果已经安装了就直接到下一步) :

[root@bogon ~]# yum provides semanage

安装运行semanage所需依赖工具包 policycoreutils-python:

[root@bogon ~]# yum -y install policycoreutils-python

查询当前 ssh 服务端口:

[root@bogon ~]# semanage port -l | grep ssh

向 SELinux 中添加 ssh 端口:

[root@bogon ~]# semanage port -a -t ssh_port_t -p tcp 22345

重启 ssh 服务:

[root@bogon ~]# systemctl restart sshdservice

测试成功后,把22端口注释掉即可


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/12599097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存