1.MobaXterm-SSH远程连接Ubuntu
2.如何平滑升级openssh,远程源码远程源码不影响root远程登录?
3.易语言怎么写远程,就是控制另一台电脑。
4.大神教你:Lsyncd复制并实时同步到远程服务器
MobaXterm-SSH远程连接Ubuntu
大家好,我是软件软件 `杰哥编程`
------------------------- 下面是我的gitee仓库,欢迎大家关注↓ [gitee源码仓库链接跳转]( gitee.com/wrj/embe...)
## 使用MobaXterm-SSH远程连接Ubuntu虚拟机的远程源码远程源码好处:
1. 使用ssh远程终端操作,相比虚拟机图形界面,开机开机更加小巧,软件软件易语言shell管理源码速度更快。远程源码远程源码对于初学者来说,开机开机可以直接进入虚拟机桌面,软件软件安装VIM,远程源码远程源码使用touch命令创建文件,开机开机然后使用vi编辑文件,软件软件进入编辑模式编写代码。远程源码远程源码完成编写后,开机开机使用ESC退出,软件软件保存文件,编译运行。对于小项目来说,这种方法没有问题;但对于大项目,VIM对新手不太友好。
2. 解决方法是在Windows电脑上使用sourceInsight或VScode编辑器编辑整个工程项目的代码,然后通过MobaXterm终端远程接入虚拟机,拖拽文件图标将项目源码上传到虚拟机。在终端使用gcc编译指令编译整个工程。后续每次修改,都在Windows电脑上使用代码编辑器修改代码,php的源码然后将改动的文件通过MobaXterm拖拽上传到虚拟机,再次编译。
3. 这种方法在工作中也常用,因为工作中会使用公司的服务器(Ubuntu虚拟机)进行交叉编译代码,通常通过SSH远程接入服务器,敲终端命令进行编译,看不到桌面,更不用说使用VIM编写代码了。
## 使用MobaXterm-SSH远程连接Ubuntu虚拟机的方法:
1. 使用VM软件,从Ubuntu官网下载Ubuntu系统的iso镜像文件,使用VM软件读取iso文件创建虚拟机,记得采用桥接网络才能接入互联网;(具体创建虚拟机的详细操作方法见主页文章”如何搭建一台属于自己的Ubuntu虚拟机“)
2. 按住”Ctrl+Alt+t“启动终端,依次在终端输入以下指令安装并启动SSH服务:
2.1 同步刷新软件仓库,运行命令:sudo apt-get -y update
2.2 运行命令安装openssh-server:sudo apt-get install -y openssh-server
2.3 检查 ssh 服务是否启动成功,运行命令,出现以下则为运行成功:sudo ps -e | grep ssh
2.4 如果没有启动,输入命令启动 ssh 服务:sudo service ssh start
2.5 输入命令允许SSH连接通过防火墙:sudo ufw allow ssh
2.6 输入命令允许SSH服务运行:sudo systemctl enable --now ssh
2.7 输入命令安装ifconfig网络工具:sudo apt-get install net-tools
2.8 输入命令查看虚拟机的IP地址,..1.就是虚拟机的IP地址了:ifconfig
2.9 打开MobaXterm,按照下面的数字顺序提升,点击1、2按钮选择SSH连接,3的位置输入2.8步骤中得到的IP地址,勾选4的位置那里的方框,然后在5的位置那里输入你的Ubuntu名字(不知道Ubuntu名字的话,运行whoami命令就可以得到你的及源码Ubuntu名字);点击6位置的OK就开始连接到我们的Ubuntu了。
2. 连接成功就是下面这样,第一次可能会需要你输入密码,这个密码就是你的开机密码。
## 如何使用MobaXterm上传工程文件到Ubuntu,然后编译工程:
3.1 点击红框位置的Desktop文件夹图标进入Ubuntu的Desktop目录。
3.2 点击选中你需要编译的工程文件夹,拖拽图标到图中所示区域,即可完成工程文件夹的源码上传到Ubuntu。
3.3 执行命令:cd /home/hh/Desktop/upg_svr_public/ 进入/home/hh/Desktop/upg_svr_public/目录下,然后编译你的工程源码
3.4 执行位置1的编译命令编译整个工程源码,然后可以在位置2的地方看见编译成功生成的可执行文件,如果是交叉编译,就可以把可生成的执行文件通过图标拖拽出来,然后把可执行文件拖拽到开发板,就可以运行了。
## 总结:
企业做的嵌入式Linux项目,为了节约硬件成本,采购的内存大小一般只能支持内核的运行和公司的应用软件运行以及支持调试工具的运行,一般不会有多余的内存来在开发板本地安装编译工具,这就需要我们在其他地方把源码工程编译好,生成可执行文件下载到开发板运行。我们常常在公司的服务器上面的虚拟机进行交叉编译,所以才需要我们用远程终端工具MobaXterm去接入虚拟机。然后把我们在window用VScode编辑好的代码拖拽上传到服务器,等待服务器编译完把生成的源码玩可执行文件从服务器拖拽下来,烧录到板子运行。本章节讲解了如何使用MobaXterm去远程接入虚拟机,并且互相拖拽图标传输文件、编译工程源码的操作,希望帮到你;如果你想得到更多免费的嵌入式学习资料,点击进入主页,按提示操作领取嵌入式学习独家资源。
如何平滑升级openssh,不影响root远程登录?
为确保您的系统安全,可能需要更新OpenSSH至最新版本。此过程需同时更新OpenSSL和OpenSSH,因为OpenSSH依赖于OpenSSL。 首先,检查当前使用的OpenSSH服务版本。执行命令:ssh -V。 接着,为了防止在卸载OpenSSH过程中导致无法登录主机,安装并启动telnet服务。命令如下:使用yum -y install telnet安装telnet。
使用yum -y install telnet-server安装telnet-server。
启用telnet服务,命令为systemctl enable telnet.socket,并启动服务systemctl start telnet.socket。
继续,准备更新OpenSSH所需的依赖包,命令为:yum -y install gcc keyutils-libs rpm-build krb5-devel libcom_err-devel libselinux-devel pam-* openssl-devel pkgconfig vsftpd zlib*。源码流 为了安全起见,备份原有的SSH服务版本,执行以下命令:将/etc/ssh重命名为/etc/ssh.bak。
将/usr/bin/ssh重命名为/usr/bin/ssh.bak。
将/usr/sbin/sshd重命名为/usr/sbin/sshd.bak。
下载最新版本的OpenSSH安装包,即openssh-9.7p1.tar.gz,并将此安装包通过WinSCP上传至/opt文件夹。 卸载原有版本的OpenSSH rpm安装包,先查看是否需要删除的依赖包,然后执行卸载命令。如果提示有依赖文件,则使用强力删除模式:使用rpm -e `rpm -qa | grep openssh`卸载。
若提示依赖文件存在,则使用rpm -e `rpm -qa | grep openssh` --nodeps强力删除。
编译并安装新版本的OpenSSH,首先解压下载的安装包,然后进入解压路径编译安装:使用cd /opt进入目录。
解压安装包tar zxvf openssh-9.7p1.tar.gz。
使用命令cd /opt/openssh-9.7p1/进入安装目录。
执行./configure --sysconfdir=/etc/ssh进行配置。
验证OpenSSH的执行路径,执行命令:which sshd。 复制源码解压路径下的开机启动脚本sshd.init到/etc/init.d/文件夹,并启动sshd服务:使用cp /opt/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd复制。
使用systemctl daemon-reload和service sshd start启动sshd服务。
修改配置文件sshd_config,允许root用户通过ssh远程登录,使用命令:sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config修改。 复制源码解压路径的ssh-copy-id文件至/usr/local/bin/,并赋予执行权限:使用cp /opt/openssh-9.7p1/contrib/ssh-copy-id /usr/local/bin/复制。
使用chmod +x /opt/openssh-9.7p1/contrib/ssh-copy-id设置权限。
最后,验证OpenSSH更新是否成功,执行/usr/local/bin/ssh -V命令查看结果,若显示为OpenSSH_9.7p1,则更新完成。 完成以上步骤后,使用命令mv /etc/security.bak /etc/security重新启用安全文件。易语言怎么写远程,就是控制另一台电脑。
可以的,在网上很多这方面的源码,简单
下面找的
/dispbbs.asp?BoardID=&ID=&replyID=&skin
《易语言远程控制技术教程》
(年月第一版)
前 言
利用远程控制技术对企业管理,可加快我国经济建设的需要。易语言以其易学易用功能完善的功能,从而为企业管理中的远程控制提供了基础的编程条件。
本教程从一个基本面说明了远程控制技术的编程环节,可能大家比较感兴趣的是双向通讯自动上线技术、网络通讯协议、内存压缩技术、TELNET超级终端等功能,本教程均提供了例程。高级的远程控制技术应用请大家继续学习WINSOCK,API应用,端口映射技术等。
对于破坏国家正常经济秩序的黑客行为,本书是严厉批评的。由于黑客技术的发展,远程控制被少数人利用,对国民生产产生了不良的后果。本教程不得不接触到远程控制这个方面,但仅以讨论的形式为大家介绍,并不进行细致的介绍,以让大家对此类黑客技术有所提防。
由于本教程中,某程序可能即包含了服务器组件,也包含了客户组件,因此如果用外部流行的“服务端/客户端”提法很容易混淆,因此本书将主动进行控制管理的一方称为:“主控方”,编写的程序为:“主控端”;将被动接受控制的一方称为:“受控方”,编写的程序为:“受控端”。
本教材个人可打印一份细看,各兄弟网站可自由转载而不用事先打招呼。版权所有,不得批量印刷即可。
作者还要说的话:本教程用了我两个月的时间写完,前期收集例程及写例程用了我更多的时间,特别辛苦。远程控制是把两刃剑,可以好好用,也可能造成不好的影响,还好回头再一看教材后,感觉对于企业内部管理应用还是非常不错的,可以提高中国中小企业的管理水平,但不可能制作成类似于灰鸽子那样的破坏功能,本书没有提供这样的技术,也请大家自重,不要写破坏性的程序。
本书使用到大量的例程,足有MB,还好,书中我基本都提供了下载链接,如果书中没有列出的例程,请大家跟贴指出来,我会补上。我觉得最好的学习方法是先将这些例程收集全了,再一个一个打开看看,基本上就能明白了。
目 录
第一课.远程控制原理 5
1.企业管理的需要 5
2.介绍相关管理工具 5
3.组件简介 7
第二课.组件选择 8
1.数据报 8
2.服务器/客户组件 9
3.网络通讯支持库 9
4.保密通讯支持库
5.远程服务支持库
6.网络传送支持库
7.网络通讯支持库二
8.表1:网络通讯类支持库组件功能对比表
网络传送大文件丢包的原因
第三课.组件构成
1.用例图1:通讯类(易鸽子,局域网寻呼机,方舟千里眼)
2.用例图2:聊天室类
3.用例图3:远程控制
4.用例图4:远程数据服务(数据库)
5.采用单对组件
6.采用多种组件
7.组件搭配
8.表2:有易语言源码的远程控制软件对比
第四课.通讯协议
1.指令简介
2.指令应用
第五课.用户连接
1.连接方式
2.登录口令
3.身份验证,MAC和硬盘码
第六课.远程监视
1.“服务器/客户”组件通讯模式
2.内存压缩
3.“远程服务支持库”
第七课.自动上线
1.数据报广播自动上线
2.多对“服务器/客户”组件反向扫描上线
3.服务IP地址自动搜寻自动上线
4.将IP地址直接绑定在受控端
5.推举服务器
第八课.客户端功能
1.发送指令
2.对话聊天
3.监视屏幕
4.遥控功能
5.了解信息及修改信息
5.TELNET超级终端
6.文件传输
7.鼠标键盘录制
8.隐藏进程
9.开机启动运行
.正常关机
.多用户识别
.不重复运行
.系统服务权限
.其他功能
第九课.服务端功能
1.安全性保证
2.用户列表信息
3.数据库操作
4.自动生成EXE
5.跨网远程
第十课.捆绑与免杀
1.捆绑
2.免杀
第十一课.打造超小受控端
1.请使用斩月工具,去掉易语言的核心支持库。
2.尽量使用API,这样不带有大量的支持库,体积就小了。
第十二课 一个实例的分析
1.设计文档
激活客户端过程
客户端上线过程
2.开机口令
3.用户列表/选择用户
4.发送指令
5.激活用户
6.发送文件
参考资料:
大神教你:Lsyncd复制并实时同步到远程服务器
Lsyncd监视本地目录树事件监视器接口(inotify或fsevents)。它聚合并将事件组合在一起几秒钟,然后生成一个(或多个)进程来同步这些更改。默认情况下,由rsync实现同步。因此,Lsyncd是一种轻量级的实时镜像解决方案,相对容易安装,不需要新的文件系统或块设备,也不会妨碍本地文件系统的性能。
Rsync+ssh是一种高级操作配置,它使用ssh来执行文件和目录直接在目标上移动,而不是在线路上重新传输移动目标。细粒度的定制可以通过配置文件实现。自定义动作configs甚至可以从头编写,从shell脚本到Lua语言编写的代码。这种方法简单,强大,灵活的配置可以被解决。
Lsyncd 2.2.2要求在所有源和目标机器上rsync = 3.1。
系统环境:
RenwoleServer:... 服务端
RenwoleClient:... 客户端
OS:CentOS Linux release 7.4. (Core) x
rsync的安装
请参阅:《CentOS7 Configuring Rsync Server》。
安装扩展依赖包
$ yum install -y gcc gcc-c++ lua lua-devel cmake libxml2 libxml2-devel
源代码编译安装lsyncd
$ wget /axkibe/lsyncd/archive/release-2.2.2.tar.gz$ tar xvf release-2.2.2.tar.gz$ cd lsyncd-release-2.2.2$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncd$ make amp;amp; make install$ ln -s /usr/local/lsyncd/bin/lsyncd /usr/bin/lsyncd安装过程可能报错:-- Configuring incomplete, errors occurred!
安装lua-devel即可。
设置无密码SSH登录
因为这里使用rsyncssh进行同步,所以还需要配置root账号无密码ssh登录。详细配置请参阅:
《如何在Linux中设置SSH无密码登录》
配置lsyncd
以下是三种常用配置案例
1.远程同步rsyncssh模式配置方案:
$ vim /etc/lsyncd.confsettings { logfile = /var/log/lsyncd.log,
--日志路径 statusFile = /var/log/lsyncd.status, --状态文件 pidfile = /var/run/lsyncd.pid,
--pid文件路径 statusInterval = 1,
--状态文件写入最短时间 nodaemon = false,
--daemon运行 maxProcesses = 1,
--最大进程 maxDelays = 1,
--最大延迟}sync { default.rsyncssh, --默认rsync+ssh,rsync版本需要升级3以上版本 source = /apps/www/renwoleblog/,
--源目录 delete = true,
--保持完全同步
host = root@...,
targetdir = /apps/www/renwoleblog/bak/, --目标目录 exclude={
.txt
--需排除的文件 },rsync = { binary = /usr/bin/rsync, --需先安装好rsync archive = true,
--归档 compress = false,
--压缩 owner = true,
--属主 perms = true,
--权限 whole_file = false },ssh = { port = }}
2.本地目录同步配置方案:
sync { default.rsync, source = /apps/www/renwoleblog/, target = /apps/www/renwoleblog/bak/,}
3.远程同步rsync-daemon模式配置方案
sync { default.rsync, source = /apps/www/renwoleblog/, target = renwole@...::renwolecom, delete=true, exclude = { .bak* }, delay = , init = false, rsync = { binary = /usr/bin/rsync, archive = true, compress = true, verbose = true, perms = true, password_file = /etc/rsync.password, _extra = { --bwlimit=} }}
重点参数说明:
--
# 注释符settings # 是全局配置sync # 定义同步参数rsync # 定义同步文件参数ssh
# 定义服务器远程端口
lsyncd配置文件允许多个sync互不影响。
说明:如果是一对多,请参阅本地同步,修改目标目录即可。
创建systemctl系统单元文件
为了实现systemctl进行管理,请创建配置文件以及脚本启动文件,命令如下:
$ vim /etc/sysconfig/lsyncd添加如下内容:LSYNCD_OPTIONS=/etc/lsyncd.conf创建启动文件:$ vim /usr/lib/systemd/system/lsyncd.service添加如下内容:[Unit]Description=Live Syncing (Mirror) DaemonAfter=network.target[Service]Type=simpleEnvironmentFile=-/etc/sysconfig/lsyncdExecStart=/usr/local/lsyncd/bin/lsyncd -nodaemon $LSYNCD_OPTIONS[Install]WantedBy=multi-user.target
启动lsyncd并加入开机自启动
$ systemctl start lsyncd$ systemctl enable lsyncd接下来你就可以往源服务器/apps/www/renwoleblog/内上传任意文件,完成后立刻就会同步到客户端 ... /apps/www/renwoleblog/bak/目录内,也可以查看服务端的lsyncd日志文件分析是否同步成功。例如:[root@RenwoleServer ~] $ cat /var/log/lsyncd.log...Fri Dec :: Normal: Calling rsync with filter-list of new/modified files/dirs/PCHunter_renwole.com.tar.gz/Fri Dec :: Normal: Finished (list): 0Fri Dec :: Normal: Calling rsync with filter-list of new/modified files/dirs/PCHunter_renwole.com.tar.gz/Fri Dec :: Normal: Finished (list): 0Fri Dec :: Normal: Calling rsync with filter-list of new/modified files/dirs/PCHunter_renwole.com.tar.gz/Fri Dec :: Normal: Finished (list): 0
日志内容显示PCHunter_renwole.com.rar文件成功同步。
另外lsyncd是基于inotify + rsync的开源同步软件,相对于其他同步软件更加安全可靠,占用资源更少,但配置略麻烦。
lsyncd 还支持当监控到某个指定事件时就执行什么样的命令,由于是通过时间延迟和累计事件命中次数来触发同步,在设计上要优于inotify,另外他的同步速度完全取决于你的网络质量。