版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
linux 远程桌面连接和批量管理和免密登录
一、windows 远程桌面连接
- 配置epel源
第二个源就是epel源,用来安装一些扩展的包。
[root@localhost ~]#cat /etc/yum.repos.d/youyou.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enable=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
enable=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
- 安装桌面环境
查看包组列表,然后安装桌面环境,如果已经安装桌面环境,请忽略这一步,或者yum groups install “Server with GUI”,不过安装完成后,重启会发现多了个选项
配置下次开机启动图形 systemctl set-default graphical.target
[root@localhost ~]#yum groups list
[root@localhost ~]#yum groups install GNOME\ Desktop
[root@localhost ~]startx
[root@localhost ~]systemctl set-default graphical.target
- 安装rxdp
[root@localhost ~]yum install xrdp
[root@localhost ~]systemctl start xrdp
- 连接
注意记得关闭防火墙,查看3389是否监听
二、pssh 批量运维服务器
首先需要目标主机,对于现在的主机可以免密登录
pssh 仅支持 python 3.2版本
centos 8 是python 3.6
- centos 7 使用 epel源 yum 安装pssh
[root@localhost ~]#yum install pssh
- 下载源码安装(目前这个包仅支持到python 3.2,centos 8 的python过高,无法运行)
[root@localhost ~]wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gz
[root@localhost ~]#tar xvf pssh-2.3.1.tar.gz
[root@localhost ~]#cd pssh-2.3.1/
[root@localhost pssh-2.3.1]#python setup.py install
- 使用 pssh
-h HOST_FILE 后边跟远程主机列表(ip)
-H HOST_STRING 后边跟远程主机名或者ip地址
-l USER 指定远程主机的用户名-p PAR 指定pssh最大的并行线程数。
-o 将输出的内容重定向到一个指定的文件中
-O 指定ssh参数的具体配置
-e 将执行错误重定向到一个指定的文件中
-t 设定命令执行超时时间
-x 传递ssh命令的一些参数
-i 在远程主机上执行命令完成后显示标准输出和标准错误
-P 在执行远程命令时,输出执行结果
创建主机文件 里面编写远程主机的内容
格式为:用户名+@+主机ip+:端口号,端口号默认为22,可不写。其他端口号要写明
编写host文件
[root@localhost ~]#cat host.txt
[email protected]
[email protected]
[root@localhost ~]#
创建文件夹
[root@localhost ~]#pssh -h host.txt mkdir /root/ceshi
[1] 10:56:50 [SUCCESS] [email protected]
[2] 10:56:50 [SUCCESS] [email protected]
[root@localhost ~]#
加上-P 输出回显
[root@localhost ~]#pssh -h host.txt -P date
192.168.198.134: Thu Oct 24 10:58:25 CST 2019
[1] 10:58:25 [SUCCESS] [email protected]
192.168.198.145: Thu Oct 24 10:58:03 CST 2019
[2] 10:58:25 [SUCCESS] [email protected]
加上-o 然后文件夹名,把每个主机的输出结果保存在文件中
[root@localhost ~]#pssh -h host.txt -o a date
[root@localhost ~]#tree a
a
├── [email protected]
└── [email protected]
0 directories, 2 files
[root@localhost ~]#cat a/[email protected]
Thu Oct 24 11:02:41 CST 2019
[root@localhost ~]#
- 其他命令
使用 --help 即可查看例子
pnuke:在远程多台主机上并行killall某一进程
pslurp:把文件从远程多台主机上复制到本地主机上
prsync:使用rsync协议本地文件同步到远程多台主机上。
pssh:在远程多台主机上并行运行命令
pscp :把文件并行复制到多台远程主机上,这个命令有可能是 pscp.pssh - 如果编译安装的话,删除pssh
路径有可能没有local 自行which 查询 python 路径也根据自己的python 进入
cd /usr/local/bin/
rm -rf pnuke prsync pscp pslurp pssh pssh-askpass
cd /usr/local/man/man1/
rm -rf pnuke.1 prsync.1 pscp.1 pslurp.1 pssh.1
rm -rf /usr/local/lib/python3.6/site-packages/pssh*
三、配置ssh 免密登录服务器
把对端主机名写在/etc/hosts 里就可以直接使用主机名登录了
- 命令配置ssh免密登录
[root@localhost ~]#ssh-keygen
生成密钥对
[root@localhost ~]#ssh-copy-id [email protected]
把密钥对拷贝到对方主机
[root@localhost ~]#echo "192.168.198.134 centos8" /etc/hosts
[root@localhost ~]#ssh centos8
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Wed Oct 23 22:10:42 2019
[root@localhost ~]#hostname -I
192.168.198.134 192.168.122.1
- ssh 通过写文件免密登录
将本地id_rsa.pub文件的内容拷贝至远程服务器的~/.ssh/authorized_keys文件中
查看本地主机的秘钥
[root@localhost .ssh]#cd /root/.ssh/
[root@localhost .ssh]#cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7WrvsiCf+uVauwqk8FFzHdw6E06pjRX75X531Pv9p+rTa18oAHr516npfzm775wXebGE/WF5MNqizcXC2+eIyfmxUsSVh99bo0Hf1WCpxj57i80hPQ+fZI4yHZPorrivjQtsX5ixLk/1yncGAIctAPeQDzwstroIDnOEGgwXmt2IfO8JhAYFW2+rAcwfcHVmj2SL2jjjNmIqHeMkzbamu5FTf3BXERc8nBzy+pGrKHO+KFY3+F8ivvk0/l9d5j0Sai9GfzxGZ2smBvB9OjZHx9MELU8XKhvSj9PjNscT9xDxguj1eyXAQk5ho7QaDGmJGT/0iCY54p6R9qHwbuRYX [email protected]
追加到对端的这个文件里
[root@localhost .ssh]#cd /root/.ssh/
[root@localhost .ssh]#cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgHTvLtVFLp7/KdSSLr2uZtnmrt6hV4fykG/gsPzX4L1wxxBpXv7VpBA3e9J98M/D8PJ+USSNQEjP5pXEp9wtVKk8Vr/tAjHUzcWb8A6B8NQ70Gm1QQis5nazv56C9bP1Jt+12XJpg0mCM3t3urVd6H2f7s7aj/SQCOInAgHeNXde7U1MwlTo06yCuGcEDW1L4BDQgriDqM7aN3CnrDadfZ+fSmyDc/ffFpqUR3gkdhm4KmQoWTmI5IhLa3f6CI55pbdmFWPnJdxd+8iNRlhsBsZM9jJMgzQ1zG0+b+H5TDDkZMqFoIcpmmVzpt+5QAmA0S+pC0BDrU+zkpWCRjfSt [email protected]
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7WrvsiCf+uVauwqk8FFzHdw6E06pjRX75X531Pv9p+rTa18oAHr516npfzm775wXebGE/WF5MNqizcXC2+eIyfmxUsSVh99bo0Hf1WCpxj57i80hPQ+fZI4yHZPorrivjQtsX5ixLk/1yncGAIctAPeQDzwstroIDnOEGgwXmt2IfO8JhAYFW2+rAcwfcHVmj2SL2jjjNmIqHeMkzbamu5FTf3BXERc8nBzy+pGrKHO+KFY3+F8ivvk0/l9d5j0Sai9GfzxGZ2smBvB9OjZHx9MELU8XKhvSj9PjNscT9xDxguj1eyXAQk5ho7QaDGmJGT/0iCY54p6R9qHwbuRYX [email protected]
-
原理
在.ssh里
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
如果希望ssh公钥生效需满足至少下面两个条件:
1). ssh目录的权限必须是700
2). ssh/authorized_keys文件权限必须是600
cat /root/.ssh/known_hosts ,这里是保存ssh登陆的信息,第一次登陆ssh的时候提示,相当于保存对方的指纹 -
对方主机如何取消你的免密登陆
删除自己的这个文件,或者找到对方主机的key 删除掉
root@liuhao:~# cd /root/.ssh/
root@liuhao:~/.ssh# ls
authorized_keys
root@liuhao:~/.ssh# rm authorized_keys
- 重新生成key
在主机/etc/ssh/的文件夹里,有key,的文件,如果全删了,Ssh -keygen -A 重新生成密钥,重启服务。
之前的主机,就无法认识你的指纹,就需要删除本机里的known_hosts,里面的指纹。然后重新添加