关键词:
SSH远程登录嵌入式Linux开发板
SSH是一种网络协议,用于加密两台计算机之间的通信 ; SSH的架构是服务器-客户端模式,使用的是非对称加密非对称加密:非对称加密有两个秘钥,“公钥”和“私钥” 两个秘钥的特性:公钥加密后的秘闻,只能通过对应的私钥进行解密;而通过公钥推理出私钥的可能性微乎其微,私钥是Server端独有。
1)远程Server收到用户的登录请求,把自己的公钥发给用户
2)用户使用这个公钥,将登录密码加密后,发送回来
3)远程Server用自己的私钥,解密登录密码,如果密码正确,就同意用户登录
- 移植需要安装的库:
下载zlib | |
下载openssl | |
下载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 |
编译后的文件布局:
图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环境
- 创建目标板子工作目录(在开发板上执行)
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 |
- 拷贝ssh编译生成的可执行文件到目标板子(拷贝的文件在openssh编译目录下)
# cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan sshd /work/rootfs/usr/local/bin/ |
- 拷贝服务器循环命令到目标板子
# cp sftp-server ssh-keysign /work/rootfs/usr/local/libexec/ |
- 拷贝配置文件到目标板子
# cp sshd_config ssh_config /work/rootfs/usr/local/etc/ |
- 生成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
- 拷贝生成的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
- 拷贝用户组和密码文件将PC机Linux系统/etc目录下的passwd、group拷贝到目标开发板/etc目录下(制作文件系统时拷贝过就不需要拷贝了)。
注意:需要将passwd文件中的脚本解析器bash改为sh。
并且在/etc/passwd 中添加下面这一行:
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin |
- 设置开发板root密码
# passwd root |
输入设置的密码。
- 修改配置文件打开开发板/usr/local/sshd_config文件,将PermitRootLogin yes语句前的注释“#”号去掉。
- 修改权限将开发板/usr/local/etc/下的ssh_host_*几个文件的权限改为700。
- 进入开发板命令行,启动SSH服务
# /usr/local/bin/sshd |
运行后ps查看一下是否启动成功:
图2-4
- 通过PClinux系统登录开发板
# ssh root@192.168.0.199 |
192.168.0.199:开发板的IP地址。
图2-5
- 是windows下CRT软件进行登录
图2-6 登录OK
第五章登录开发板
- 登录开发板:
- 退出登录:
建立目标板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服务)
参考技术ASSH是为网络数据安全传输提供的安全协议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寻址- 查看详情