ssh协议远程开发板linux系统

DS小龙哥 DS小龙哥     2022-12-02     568

关键词:


SSH远程登录嵌入式Linux开发板


SSH是一种网络协议,用于加密两台计算机之间的通信 ; SSH的架构是服务器-客户端模式,使用的是非对称加密非对称加密:非对称加密有两个秘钥,“公钥”和“私钥” 两个秘钥的特性:公钥加密后的秘闻,只能通过对应的私钥进行解密;而通过公钥推理出私钥的可能性微乎其微,私钥是Server端独有。

SSH协议远程开发板Linux系统_linux

1)远程Server收到用户的登录请求,把自己的公钥发给用户

2)用户使用这个公钥,将登录密码加密后,发送回来

3)远程Server用自己的私钥,解密登录密码,如果密码正确,就同意用户登录



  • 移植需要安装的库:

下载zlib

​http://www.zlib.net​

下载openssl

​http://www.openssl.org/source/​

下载openssh

​http://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/​

交叉编译zlib​

官网下载地址:http://www.zlib.net/

编译步骤:

# tar xvf zlib-1.2.5.tar.gz

# cd zlib-1.2.5/

# export CC=arm-linux-gcc //用CC变量来指定交叉工具链

# ./configure --prefix=$PWD/_install //最后生成的库、头文件和man文件都在当前目录的_install目录下

# make && make install

编译后的文件布局:

SSH协议远程开发板Linux系统_linux_02


图1-1

  • 安装tree命令:

# apt-get install tree

第二章交叉编译libopenssl 库 ​

Libopenssl 库主要是做加密作用。 下载链接:http://distfiles.macports.org/openssl/

编译步骤:

# tar xf openssl-1.0.2e.tar.gz

# cd openssl-1.0.2e

# ./config shared no-asm --prefix=$PWD/tmp

# vim Makefile +62 #修改过程参考图2-1

#make && make install

图2-1 修改Makefile

编译安装成功后的目录:

图2-2

第三章交叉编译openssh​

解压:# tar xvf openssh-4.6p1.tar.tar

配置:

./configure -host=arm-linux -with-libs -with-zlib=/work/zlib/zlib-1.2.5/_install/lib/ -with-ssl-dir=$PWD/tmp -disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar

编译:make

第四章搭建SSH环境​

  1. 创建目标板子工作目录(在开发板上执行)

mkdir /usr/sbin -p

mkdir /usr/local/bin -p

mkdir /usr/local/libexec -p

mkdir /usr/local/etc/ -p

mkdir /var/run/ -p

mkdir /var/empty/ -p

  1. 拷贝ssh编译生成的可执行文件到目标板子(拷贝的文件在openssh编译目录下)

# cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan sshd /work/rootfs/usr/local/bin/

  1. 拷贝服务器循环命令到目标板子

# cp sftp-server ssh-keysign /work/rootfs/usr/local/libexec/

  1. 拷贝配置文件到目标板子

# cp sshd_config ssh_config /work/rootfs/usr/local/etc/

  1. 生成key文件。在PC机编译openssh的根目录下执行以下3条命令:

ssh-keygen -t rsa -f ssh_host_rsa_key -N ""

ssh-keygen -t dsa -f ssh_host_dsa_key -N ""

ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""

执行效果图:

图2-3

  1. 拷贝生成的key文件到目标开发板

root@xl:/work/openssh/openssh-4.6p1# cp ssh_host_*_key /work/rootfs/usr/local/etc/ -v

"ssh_host_dsa_key" -> "/work/rootfs/usr/local/etc/ssh_host_dsa_key"

"ssh_host_ecdsa_key" -> "/work/rootfs/usr/local/etc/ssh_host_ecdsa_key"

"ssh_host_rsa_key" -> "/work/rootfs/usr/local/etc/ssh_host_rsa_key"

或者:

# ssh-keygen -t rsa -f /ssh_host_rsa_key

# ssh-keygen -t dsa -f /ssh_host_dsa_key

  1. 拷贝用户组和密码文件将PC机Linux系统/etc目录下的passwdgroup拷贝到目标开发板/etc目录下(制作文件系统时拷贝过就不需要拷贝了)。
    注意:需要将passwd文件中的脚本解析器bash改为sh。
    并且在/etc/passwd 中添加下面这一行:

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

  1. 设置开发板root密码

# passwd root

输入设置的密码。

  1. 修改配置文件打开开发板/usr/local/sshd_config文件,将PermitRootLogin yes语句前的注释“#”号去掉。
  2. 修改权限将开发板/usr/local/etc/下的ssh_host_*几个文件的权限改为700。
  3. 进入开发板命令行,启动SSH服务

# /usr/local/bin/sshd

运行后ps查看一下是否启动成功:

图2-4

  1. 通过PClinux系统登录开发板

# ssh root@192.168.0.199

192.168.0.199:开发板的IP地址。

图2-5

  1. 是windows下CRT软件进行登录

图2-6 登录OK

第五章登录开发板


  • 登录开发板:
  • SSH协议远程开发板Linux系统_开发板_03


  • 退出登录:

SSH协议远程开发板Linux系统_开发板_04


建立目标板linux系统

...c) 在具有网络功能的嵌入式系统中,值得注意的是“远程更新”,既可通过网络跟新系统!4、实际项目工作空间 查看详情

ssh远程连接方式总结(代码片段)

SSH概述SSH(安全外壳协议SecureShellProtocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过SSH连接远程服务器,从而做开发,Windows、macOS、Linux都有自带的SSH客户端,... 查看详情

终端命令ssh服务,远程登录

一、SSH协议在Linux中SSH是非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上。SSH客户端是一种使用"SecureShell(SSH)"协议连接到远程计算机的软件程序。SSH是目前比较可靠,为专门远程登录会话和其它网络... 查看详情

linux桌面系统远程访问全解析(代码片段)

...要访问其它终端,也会被其它终端所访问。远程访问协议主要有RDP、SSH和VNC等,不同系统间的访问矩阵总结如下。远程访问:协议与工具一、远程访问协议与服务远程访问服务常用的有RDP、SSH、VNC等协 查看详情

如何通过ssh远程登录linux系统

...安装上ssh软件,ssh是SecureShell的缩写,主要提供远程登录协议。windows下的安装很简单,只要下载好安装程序,双击即可安装。安装完成后会生成两个软件图标。 安装完成后,输入要登录的linux系统的ip地址和用户名,输入密码登... 查看详情

红帽7ssh(代码片段)

SSH(SecureShell)是一种能够以安全的方式提供远程登录的协议,想要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全... 查看详情

linux之ssh协议知识点总结

...去实现文件的上传下载功能,这里主要用到的就是SSH协议。为了更好的理解SSH协议,我就翻看了手头的书,回顾SSH的相关知识点,今天就把它总结下,希望对用到SSH协议的小伙伴能够有所帮助。一、何为SSH协... 查看详情

linux系统常用远程连接工具?

...全终端模拟软件,它支持SSH1,SSH2,以及Windows平台的TELNET协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的,Xshell非常符合使用习惯,值得推荐。优点:①界面设计简洁,人... 查看详情

远程连接协议简介

参考技术Atelnet协议是远程登录服务的协议,由于其传输过程中采用明文方式,现已基本有ssh替代。SSH(SecureShell)是安全外壳协议,几乎所有操作系统都默认支持此协议。和telnet不同,该协议在数据传输时会对数据进行加密并压缩... 查看详情

远程登录linux服务器的命令是啥?

...以了,Linux和windows系统都可以直接登,记得要选择对应的协议哦。 参考技术Dssh用户名@ip地址-p端口 查看详情

openssh软件(ssh服务)

参考技术ASSH是为网络数据安全传输提供的安全协议OpenSSH是基于SSH协议开发的软件安装客户端:yum-yinstallopenssh-clients安装服务端:yum-yinstallopenssh-server---注1:系统默认安装该服务,通过(rpm-qa|grepopenssh)... 查看详情

如何往linux服务器上传文件

...般都开放ssh服务方便远程登录,所以可以利用基于ssh的scp协议来上传文件,用这种方法Linux服务器不需要额外设置,也不需要额外安装软件,只需要保证ssh能够正常登录即可。接下来,然后是Windows客户端,需要在Windows上安装一... 查看详情

使用ssh连接远程主机

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。ssh登录远程主机(服务器)一般有两种方式:无密钥方式 和 有密钥方式。无密钥方式需要每... 查看详情

scp机器间远程拷贝

...径] @IP:/目标路径scp参数如下:-1:强制scp命令使用协议ssh1-2:强制scp命令使用协议ssh2-4:强制scp命令只使用IPv4寻址-6:强制scp命令只使用IPv 查看详情

用putty远程登陆linux系统,显示networkerrorconnectionrefused求解!

参考技术A检查端口和防火墙配置 参考技术B看看协议,有的用tty,有的ssh,有些区别的。 参考技术Cputty应该是用的SSH协议连接的吧。首先确认你的Linux系统上安装有 openssh-server,用以提供SSH远程连接服务。ps-ef|grepsshd|grep-vgrep... 查看详情

使用ssh隧道+privoxy实现linux全局代理(代码片段)

...etworkWorkingGroup)所制定;SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序... 查看详情

win10中使用vscode+remote-ssh+linux服务器远程开发

参考技术AVSCode+Remote-SSH+Linux服务器远程开发VSCode新增加一个Remote-SSH插件,它可以用来打开Linux服务器上的的文件夹!!!VSC通过RemoteDevelopment插件连接上远程服务器,然后打开服务器上的文件夹作为workspace。无需将服务器上的各种头... 查看详情

linux使用scp命令进行文件远程拷贝详解

...][源路径]@IP:/目标路径scp参数如下:-1:强制scp命令使用协议ssh1-2:强制scp命令使用协议ssh2-4:强制scp命令只使用IPv4寻址-6:强制scp命令只使用IPv6寻址- 查看详情