ssh中如何更root@localhost为root@centos7

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh中如何更root@localhost为root@centos7相关的知识,希望对你有一定的参考价值。

Centos7笔记之SSH服务安装和设置 原创
2019-08-20 22:32:26
18点赞

潇洒哥Kahn

码龄16年

关注
一、目标

centos7下SSH服务安装和设置。

二、平台

centos7.6,

三、解析

在centos7中ssh服务默认是已经被安装了的。通过命令rpm -qa | grep openssh 查看是否安装了ssh服务

四、客户端免密ssh登录到服务器

1.安装ssh:yum install openssh 默认已经安装了,可忽略此步骤。
2.客户端生成key:[root@localhost ~]# ssh-keygen -t rsa一路回车即可,在root家目录就能生成一个隐藏文件夹.ssh
3.查看生成的秘钥文件:cd .ssh/,ls后可以看到有两个秘钥文件,一个是公钥一个是私钥

4.将客户端上生成的key拷贝(传)到服务器端:[root@localhost .ssh]# ssh-copy-id 10.100.100.210 这个Ip是目标服务器ip,然后按照提示输入yes回车,再输入目标服务器的root密码回车。

5.此时到服务器上的root家目录,cd ~后cd .ssh/ 这里面就有秘钥文件了。没在客户端做第四部的话,那么在服务器端是看不到传来的秘钥文件的。

6.客户端尝试用ssh连接服务器端
[root@localhost .ssh]# ssh 10.100.100.210 正常情况下应当啥也不输入,直接登录进去了。
7.ssh会在客户端上生成一个连接文件,可以 cd ~/.ssh/,并ls一下,发现又多出来一个known_hosts文件。

8.如果上面无法远程到服务器,请检查ssh配置文件,然后需要把一些东西去掉注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
=====================

9.接着上面的写,利用别名登录远程服务器(即ip地址不是平时记不住吗,可以给这个ssh的服务器ip取个别名),在root的家目录下的.ssh/文件夹下,创建一个config文件,文件内容如:
kahnServer是别名,它的地址是10.100.100.210,登录端口22,登录用户名root,秘钥文件是~/.ssh/id_rsa

#/root/.ssh/config文件内容如下
Host kahnServer
HostName 10.100.100.210
Port 22
User root
IdentityFile ~/.ssh/id_rsa

五、更改ssh端口

大致说下注意的地方
1.首先得关闭selinux
[root@localhost ssh]# setenforce 0 临时关闭selinux
2.防火墙开放相应的新ssh端口号
[root@localhost ssh]# firewall-cmd --permanent --add-port=3721/tcp
3.更改ssh配置文件/etc/ssh/sshd_config ,将Port 22取消注释,再加一行Port 3721,

4.如果也想将别名通过非标端口连接ssh的,也需要修改~/.ssh/config文件中的端口地址。
5.注意重启防火墙生效
6.服务器端重启ssh服务:systemctl restart sshd
7.查看ssh服务的状态(里面能看到有新加的端口3721,若有问题会冒红):systemctl status sshd
8.客户端使用ssh命令连接到服务器,如: ssh -p 3721 10.100.100.210 或别名ssh kahnServer
参考技术A 1.先检查SELinux状态,如果已关闭则无需相关修改
[root@localhost ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
2.semanage命令安装(如果已安装,则无需此步骤)
[root@localhost ~]# yum -y install semanage

[root@localhost ~]# yum provides semanage
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
base/7/x86_64/filelists_db | 6.9 MB 00:00:11
extras/7/x86_64/filelists_db | 369 kB 00:00:00
updates/7/x86_64/filelists_db | 636 kB 00:00:00
policycoreutils-python-2.5-22.el7.x86_64 : SELinux policy core python utilities
源 :base
匹配来源:
文件名 :/usr/sbin/semanage

[root@localhost ~]# yum -y install policycoreutils-python-2.5-22.el7.x86_64
3.SELinux中SSH端口开放查询和配置
参考技术B 1.系统配置好ip地址,最好是使用静态地址
2.
开启sshd服务,检查状态
3.
测试网络连通性,客户端ping服务器地址
4.
然后网络没问题的情况下使用客户端连接ssh服务即可
5.
连接成功即可操作

Linux2

1、分别用cat \\tac\\nl三个命令查看文件/etc/ssh/sshd_config文件中的内容,并用自己的话总计出这三个文档操作命令的不同之处?

[root@localhost ~]# cat /etc/ssh/sshd_config

[root@localhost ~]# tac /etc/ssh/sshd_config

[root@localhost ~]# nl /etc/ssh/sshd_config

cat命令是正序查看文件内容

tac命令是倒序查看文件内容

nl命令是对查看的内容添加行号,空白行直接跳过,不显示行号

2、分别用moreless查看/etc/ssh/sshd_config里面的内容,请用总结moreless两个命令的相同和不同之处?

[root@localhost ~]# more /etc/ssh/sshd_config

[root@localhost ~]# less /etc/ssh/sshd_config

相同之处more命令与less命令都可以用来查看文件内容

不同之处less命令可以按条件查找 输入/(后面跟查找内容)可以搜索查找,按Nn 上下查找

2、/etc/passwd文件中的前20行重定向保存到/root下改名为20_pass.txt,/etc/passwd文件中的后15行重定向保存到/root下改名为:pass_15.txt

[root@localhost ~]# head -20 /etc/passwd > /root/20_pass.txt

[root@localhost ~]# ls

20_pass.txt      initial-setup-ks.cfg  模板  图片  下载  桌面

anaconda-ks.cfg  公共                  视频  文档  音乐

[root@localhost ~]# tail -15 /etc/passwd > /root/pass_15.txt

[root@localhost ~]# ls

20_pass.txt      initial-setup-ks.cfg  公共  视频  文档  音乐

anaconda-ks.cfg  pass_15.txt           模板  图片  下载  桌面

4、请用一个命令统计/etc/hosts文件包含有多少行?多少字节?多少单词数?

[root@localhost ~]# wc /etc/hosts

  2  10 158 /etc/hosts

5、练习使用grepegrep

5.1.通过grep管道工具过滤出ifconfig命令显示信息中的IP字段?

[root@localhost ~]# ifconfig|grep "inet"

        inet 192.168.116.128  netmask 255.255.255.0  broadcast 192.168.116.255

        inet6 fe80::da33:9fda:beb9:743e  prefixlen 64  scopeid 0x20<link>

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255If

5.2./etc/passwd文件中的前20行重定向保存到/root下名称为pass

[root@localhost ~]# head -20 /etc/passwd > /root/pass

[root@localhost ~]# ls

20_pass.txt      initial-setup-ks.cfg  pass_15.txt  模板  图片  下载  桌面

anaconda-ks.cfg  pass                  公共         视频  文档  音乐

5.3.过滤/etc/passwd文件中含有/sbin/nologin 的行并统计行数?

[root@localhost ~]# grep "/sbin/nologin" /etc/passwd |wc -l

5.4 过滤/etc/passwd文件中以sh结尾的行,及以 root开头的行,不显示包含login的行?

[root@localhost ~]# egrep "sh$|^root" /etc/passwd | grep -v "login"

root:x:0:0:root:/root:/bin/bash

elin:x:1000:1000:elin:/home/elin:/bin/bash

5.5 分别用grepegrep过滤出/etc/ssh/sshd_config文件中不包含“#”开头和空白的行?

[root@localhost ~]# grep -v "^#" /etc/ssh/sshd_config | grep -v  "^&"

[root@localhost ~]# egrep -v "^# | ^$" /etc/ssh/sshd_config

6.1 通过tar命令将/etc/passwd文件打包压缩成/root/file.tar.gz

[root@localhost ~]# tar zcf /root/file.tar.gz /etc/passwd

tar: 从成员名中删除开头的“/

[root@localhost ~]# ls

20_pass.txt      file.tar.gz           pass         公共  视频  文档  音乐

anaconda-ks.cfg  initial-setup-ks.cfg  pass_15.txt  模板  图片  下载  桌面

6.2通过tar命令将/etc/passwd文件打包压缩成/root/file.tar.bz2

[root@localhost ~]# tar jcf /root/file.tar.bz2 /etc/passwd

tar: 从成员名中删除开头的“/

[root@localhost ~]# ls

20_pass.txt      file.tar.gz           pass_15.txt  视频  下载

anaconda-ks.cfg  initial-setup-ks.cfg  公共         图片  音乐

file.tar.bz2     pass                  模板         文档  桌面

6.3创建空文件夹/web/test1,并将file.tar.bz2 解包并释放到/web/test1目录下?

[root@localhost ~]# mkdir -pv /web/test1

mkdir: 已创建目录 "/web"

mkdir: 已创建目录 "/web/test1"

[root@localhost ~]# tar xf file.tar.bz2 -C /web/test1

7.1 通过vi编辑/web/test1/passwd文件将文件里为root单词全部替换成benet

[root@localhost ~]# vi /web/test1/etc/passwd

:% s/root/benet/g

7.2 通过vi编辑 删除pass文件第1510行。

10dd

5dd

1dd

7.3 vi中显示pass文件行号复制文件2 3 4行粘贴到以lp开头的行下。

将光标放置第2行执行以下操作

3yy

p

7.4 通过vi编辑 查找文件内包含mail var等字符串,并记录所在行号。

/mail    12

/var   12 15 21 22 23 26 27 28 29 33 36 38 40 41 42

 7 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

7.5 通过vi编辑 快速跳转到文件的第二行,通过r 读取 /etc/hosts 文件的内容到第二行下。

在末行模式中输入以下内容

:2

:r /etc/hosts

7.6将更改后的文件使用vim另存为/root/new_pass

:w /root/new_pass

7.7new_pass文件压缩成gz格式并改名为npass.gz文件。

[root@localhost ~]# gzip /root/new_pass > npass.gz

8统计/dev 目录下的文件数量。

[root@localhost dev]# ls -l | wc -l

9.1/boot下查找文件名以vmlinuz开头的文件?

[root@localhost ~]# find /boot -name "vmlinuz*"

/boot/vmlinuz-3.10.0-693.el7.x86_64

/boot/vmlinuz-0-rescue-d6b1971c9cfe4d5cac8ca7357e569311

9.2/boot下查找文件大小大于3M 小于 20M 的文件

[root@localhost ~]# find /boot -size +3M -a -size -20M

/boot/System.map-3.10.0-693.el7.x86_64

/boot/vmlinuz-3.10.0-693.el7.x86_64

/boot/vmlinuz-0-rescue-d6b1971c9cfe4d5cac8ca7357e569311

/boot/initrd-plymouth.img

/boot/initramfs-3.10.0-693.el7.x86_64kdump.img

10 请详细写出构建本地yum仓库的步骤?并在每行命令后面用自己的话做上中文注释?

umount /dev/sr0     //将光盘卸载

mount /dev/sr0 /media/   //挂载光盘到media目录下面

ls /media/      //查看media目录下的文件是否有dev镜像文件

cd /etc/yum.r*  //进入yum.repos.d文件里面(构建仓库文档)

mkdir a/        //创建一个名字为a的文件夹

mv C* a/       //yum.repos.d文件中以C开头的文件移动到a文件夹中

vi ./local.repo   //创建llocal.repo 文件并对其进行配置添加

点击i进入编辑模式在里面添加如下信息

[cdrom]       //仓库文档名称

name=cdrom   //名字为cdrom

baseurl=file:///media  //指定rpm 包的位置来源

enabled=1         //启用本地yum仓库 1为启动,0为停止

gpgchack=0        //禁用gpg 校验验证

输入:wq保存并退出

yum -y clean all //清除yum内部缓存

yum makecache //重建yum缓存

11、yum命令安装vsftpd,查询安装情况,最后卸载vsftpd,并再次查询卸载情况?

yum -y install vsftpd  //安装vsftpd

rpm -q vaftpd    //查看是否安装

yom -y remove vsftpd   //卸载vsftpd

rpm -q vsftpd  //查看是否卸载

12、用rpm命令安装vsftpd,查询安装情况,最后卸载vsftpd,并再次查询卸载情况?

首先先查找vsftpd 是在哪个文件下面的,也即安装源在哪里,在使用此命令时候后面的压缩文件包必须是全称才能成功安装。

cd /media/Packages/  

ls  

[root@localhost Packages]# rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm

rpm -q vsftpd  //检查是否安装

rpm -e vsftpd //卸载软件

12、通过源码方式通过解包、配置、编译、安装四个步骤安装源码软件httpd-2.2.17.tar.gz?并进行测试?

[root@localhost ~]# yum -y install gcc-c++ gcc

[root@localhost ~]# tar xf httpd-2.2.17.tar.gz -C /usr/src

[root@localhost ~]# cd /usr/src/httpd-2.2.17/

[root@localhost ~]# ./configure --prefix=/usr/local/apache

[root@localhost httpd-2.2.17]# make

[root@localhost httpd-2.2.17]# make install

[root@localhost httpd-2.2.17]# cd /usr/local/apache/conf/

[root@localhost conf]# cp httpd.conf httpd.conf.bak

root@localhost conf]# vi httpd.conf

ServerName www.example.com:80

[root@localhost conf]# /usr/local/apache/bin/apachectl  start

[root@localhost conf]# cd

[root@localhost ~]# yum -y install lynx -y

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

...................................

已安装:

  lynx.x86_64 0:2.8.8-0.3.dev15.el7                                                                                                                                        

 

完毕!

[root@localhost ~]# lynx 127.0.0.1

技术图片

 

 

以上是关于ssh中如何更root@localhost为root@centos7的主要内容,如果未能解决你的问题,请参考以下文章

openwrt ssh 怎么关闭禁止roo登录t

Linux ssh 远程登录失败

chapter02 - 03

Linux2

MAC VNC SSH roo用户开通

centos7 升级openssh到openssh-8.0p1版本