Browsed by
Tag: ssh

升级CentOS8的OpenSSH版本

升级CentOS8的OpenSSH版本

虽然说CentOS8的Openssl和OpenSSH的版本已经算是比较新的了,但是因为公司的信息安全建设的要求,在经过商业漏洞扫描软件扫描之后,还是需要进行升级操作(由于CentOS8的Openssl已经是比较新的1.1.1版本了,此次就不升级它了)。

安装包准备

# 配置编译环境
cd
yum update -y
yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip -y
mkdir -p ~/rpmbuild/{SOURCES,SPECS}
# 下载安装包
wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz
cp openssh-8.1p1.tar.gz x11-ssh-askpass-1.2.4.1.tar.gz ~/rpmbuild/SOURCES
tar zxvf openssh-8.1p1.tar.gz
cp openssh-8.1p1/contrib/redhat/openssh.spec ~/rpmbuild/SPECS/
# 修改编译文件,去掉X11环境依赖和openssl依赖
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" ~/rpmbuild/SPECS/openssh.spec p
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" ~/rpmbuild/SPECS/openssh.spec
sed -i -e "s/BuildRequires: openssl-devel < 1.1/#BuildRequires: openssl-devel < 1.1/g" ~/rpmbuild/SPECS/openssh.spec 
# 开始编译rpm包
rpmbuild -bp openssh.spec
rpmbuild -ba openssh.spec
# yum本地安装新编译的包
yum localinstall -y ~/rpmbuild/RPMS/x86_64/openssh-*
# 修改相关公钥权限
chmod 0400 /etc/ssh/ssh_host_ecdsa_key
chmod 0400 /etc/ssh/ssh_host_ed25519_key
chmod 0400 /etc/ssh/ssh_host_rsa_key
# 修改配置文件
sed -i -e "s/UsePAM yes/UsePAM no/g" /etc/ssh/sshd_config
# 重置服务
systemctl restart sshd
# 查看新版本信息
openssh -V

批量分发

# 上传文件到本地YUM仓库之后建立索引
createrepo /var/www/repos/cnpe/8/x86_64/
# 安装
ansible all -m yum -a 'name=* state=latest' -b -K
CentOS的免密登录

CentOS的免密登录

实现CentOS的免密登录还是挺简单的。

  1. 密钥的产生
ssh-keygen -t rsa

在用户家目录下的.ssh目录下产生id_rsa和id_rsa.pub两个密钥文件。其中,.pub为公钥。

  1. 公钥的上传
ssh-copy-id -i ~/.ssh/id_rsa.pub root@target_IP

使用ssh-copy-id来实现自动的上传、修改配置。

  1. 增加主机配置文件
vim ~/.ssh/config
————————————————————
Host target0    //主机名称
Hostname 192.168.174.148    //主机IP或解析记录
Port 22 //SSH端口号
User root   //SSH用户名

Host target1
Hostname 192.168.174.149
Port 22
User root
————————————————————
  1. 测试
[root@ansible_server ~]# ssh target0
Last login: Fri Dec 20 14:59:11 2019 from 192.168.174.147
[root@ansible_target0 ~]#
  1. 批量执行
    在面临批量主机执行免密登录,则需要sshpass来执行。
vim sshpassvlmachine.sh
~~~~~~~
#!/bin/bash

for host in (cat remote-hosts)
do
    sshpass -p 'password' ssh-copy-id root@{host}
done
~~~~~~~

vim remote-hosts
~~~~~~~
192.168.174.148
192.168.174.149
~~~~~~~
chmod +x sshpassvlmachine.sh
sh sshpassvlmachine.sh
使用Xshell免费版远程调用图形界面

使用Xshell免费版远程调用图形界面

使用Xshell套装可以通过Xshell调用Xmanager来实现Linux图形界面的ssh转发,从而实现Linux的GUI界面的远程调用。但对于使用edu账号申请下来的免费版Xshell就没有这个功能了。那么,我们就需要使用xshell+xming来实现类似功能。

SSHD配置

# 要打开SSH服务的X11转发功能
sed -i "s/#X11Forwarding yes/X11Forwarding yes/g"
sed -i "s/#X11DisplayOffset 10/X11DisplayOffset 10/g"
sed -i "s/#X11UseLocalhost yes/X11UseLocalhost yes/g"

安装Xming

我们下载好[1]之后,执行安装。需要配置的只有两项:

  1. 取消安装自带的putty

Xming_install

  1. 指定接受的端口10

Xming_port

配置Xshell

在xshell中配置客户端,在"SSH"-"隧道"中选择"转发x11连接到:'XDisplay:localhost:10.0'"
xming_xshell

测试

在本地xshell客户端上调用远程GUI程序,比如gparted.

xming_gui