移植SSHD
java sshd 用法
java sshd 用法Java SSHD 是一个用于在Java 应用程序中实现SSH 协议的库。
它提供了一套API,允许我们创建一个SSH 服务器,接受和处理SSH 客户端的连接,并允许客户端执行命令、上传和下载文件,以及进行其他与SSH 协议兼容的操作。
在本文中,我们将一步一步地讨论Java SSHD 的用法,介绍如何使用它创建一个SSH 服务器,并展示一些常见的用例。
1. 引入依赖首先,我们需要在项目的构建工具中引入Java SSHD 的依赖。
如果你使用Maven 进行构建,可以在pom.xml 文件中添加以下依赖项:xml<dependency><groupId>org.apache.sshd</groupId><artifactId>sshd-core</artifactId><version>2.7.0</version></dependency>如果你使用Gradle 进行构建,可以在build.gradle 文件中添加以下依赖项:groovydependencies {implementation 'org.apache.sshd:sshd-core:2.7.0'}2. 创建SSH 服务器接下来,我们将创建一个SSH 服务器来接受和处理SSH 客户端的连接。
在Java SSHD 中,我们可以使用`SshServer` 类来创建服务器。
javaimport org.apache.sshd.server.SshServer;public class SshServerExample {public static void main(String[] args) throws IOException { SshServer sshServer = SshServer.setUpDefaultServer();配置服务器的监听地址和端口sshServer.setHost("localhost");sshServer.setPort(22);配置身份验证方式sshServer.setPasswordAuthenticator((username, password, session) -> "password".equals(password));注册一个命令处理器sshServer.setCommandFactory(new ScpCommandFactory());启动服务器sshServer.start();}}在上述代码中,我们通过`SshServer.setUpDefaultServer()` 创建了一个默认的SSH 服务器实例,并设置了服务器的监听地址和端口。
Linux命令高级技巧使用sshd进行SSH服务器配置
Linux命令高级技巧使用sshd进行SSH服务器配置在Linux系统中,使用sshd命令可以进行SSH服务器的配置。
SSH (Secure Shell)是一种网络协议,通过该协议可以在不安全的网络中安全地进行远程操作和数据传输。
sshd是针对SSH服务器的配置命令,可以设置服务器的各项参数来确保服务器的安全性和性能。
本文将介绍一些使用sshd进行SSH服务器配置的高级技巧。
1. 配置sshd服务器在开始配置之前,首先需要确保系统中已经安装了sshd服务器。
可以使用以下命令来检查:```sudo yum install openssh-server // RHEL/CentOS系统sudo apt-get install openssh-server // Debian/Ubuntu系统sudo systemctl status sshd // 查看sshd服务器的运行状态```2. 配置sshd服务器的监听端口sshd服务器默认使用22端口进行监听,但为了提高安全性,可以将其改为其他端口。
可以通过编辑sshd_config文件来修改监听端口:```sudo vi /etc/ssh/sshd_config // 打开sshd配置文件```在文件中找到以下行:```#Port 22```将注释符号#去除,并将22改为其他端口号,例如:```Port 2222```保存文件并退出。
3. 禁用root用户通过SSH登录为了增加服务器的安全性,建议禁用root用户通过SSH登录。
可以通过以下命令修改sshd_config文件:```sudo vi /etc/ssh/sshd_config // 打开sshd配置文件```找到以下行:```#PermitRootLogin yes```将注释符号#去除,并将yes改为no,即:```PermitRootLogin no```保存文件并退出。
4. 配置允许访问的用户及用户组可以根据需要配置允许访问SSH服务器的用户或用户组。
sshd命令参数
sshd命令参数SSH(Secure Shell)是一种用于在不安全的网络中建立安全连接的协议。
sshd(secure shell daemon)是SSH协议的守护进程,它负责通过加密通信方式,确保用户在远程登录和执行命令时的安全性。
sshd 命令参数允许用户在使用SSH时进行各种配置和自定义。
本文将介绍一些常用的sshd命令参数,并对其功能和用法进行说明。
1. -p-p参数用于指定sshd监听的端口号。
默认情况下,sshd监听22端口。
通过使用-p参数,可以指定一个不同的端口号。
示例:sshd -p 2222上述命令将使sshd守护进程监听端口号为2222的连接请求。
2. -q如果不希望在终端上显示sshd的警告信息,可以使用-q参数。
这对于在脚本等自动化任务中使用ssh连接非常有用。
示例:sshd -q上述命令将使sshd在后台运行,且不会在终端上显示任何警告信息。
3. -o-o参数用于指定sshd的配置选项。
通过使用该参数,可以在启动sshd时临时覆盖配置文件中的选项。
示例:sshd -o PermitRootLogin=no上述命令将覆盖配置文件中的PermitRootLogin选项,禁止root用户通过SSH登录。
4. -f通过-f参数,可以指定一个不同于默认配置文件的sshd配置文件。
这对于临时测试不同配置文件的效果非常有用。
示例:sshd -f /etc/ssh/sshd_config_test上述命令将使用/etc/ssh/sshd_config_test文件作为sshd的配置文件。
5. -C当sshd启动时,会读取主机密钥和系统级配置文件。
通过使用-C参数,可以让sshd生成本地主机密钥。
示例:sshd -C /etc/ssh/ssh_host_rsa_key上述命令将重新生成并保存RSA密钥到/etc/ssh/ssh_host_rsa_key文件中。
6. -D-d参数用于调试目的,它使sshd在前台运行并输出详细的调试日志。
移植ssh到arm
移植ssh到arm1. 下载需要的源码: mkdir -p ~/arm/fs ;mkdir -p~/arm/source 下载zlib: wget -c/zlib-1.2.3.tar.gz 下载ssl: wget -c /source/openssl-0.9.8d.tar.gz 下载ssh: wget -c/openssh/portable/openssh-4.6p1.tar.gz 2. 编译: cd ~/arm/source (1) 编译zlib: tar zxvf zlib-1.2.3.tar.gz -C . cd zlib-1.2.3/ ./configure--prefix=/home/david/fs/zlib-1.2.3 修改Makefile:CC=gcc 改为: CROSS=arm-linux-CC=$(CROSS)gcc LDSHARED=gcc 改为: LDSHARED=$(CROSS)gcc CPP=gcc -E 改为: CPP=$(CROSS)gcc -E AR=ar rc 改为:AR=$(CROSS)ar rc开始编译: make; make install (2) 编译openssl: tar zxvfopenssl-0.9.8d.tar.gz ./Configure--prefix=/home/david/fs/openssl-0.9.8dos/compiler:arm-linux-gcc make make install (3) 编译openssh: tar zxvf openssh-4.6p1.tar.gz cd openssh-4.6p1/ ./configure --host=arm-linux --with-libs--with-zlib=/home/linksens/tools/fs/zlib-1.2.3--with-ssl-dir=/home/david/fs/openssl-0.9.8d--disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar make ##不要make install3. 安装(1) 将openssh-4.6p1目录下的sshd 拷贝到目标板的/usr/sbin目录下(2) 再copy scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目标板/usr/local/bin 目录下copy sftp-server ssh-keysign 到/usr/local/libexec(3) 在目标板下:mkdir -p /usr/local/etc/然后将openssh下的sshd_config,ssh_config 拷贝到该目录下mkdir -p /var/run; mkdir -p /var/empty/sshd chmod 755 /var/empty (4)在主机上:ssh-keygen -t rsa1 -f ssh_host_key -N ""ssh-keygen -t rsa -f ssh_host_rsa_key -N ""ssh-keygen -t dsa -f ssh_host_dsa_key -N ""将生存的ssh_host_* 4个文件copy到目标板的/usr/local/etc/目录下(5) 添加用户: 将主机上/etc/目下的passwd, shadow, group 三个文件copy到目标板的/etc目录下,同时记得将passwd的最后/bin/bash 该为/bin/sh其实可以删除不需要的一些用户。
成功移植OpenSSH到ARM Linux开发板
成功移植OpenSSH到ARM Linux开发板概述如果是用到一些没有SSH的开发板,对于部分的应用开发来说,会受到影响,比如使用ARM DS-5进行RSE远程管理操作时,就会出现错误。
下面就具体如何进行OPENSSH移植进行详细介绍。
步骤1.下载源码包如下,下载 openssh、openssl 和 zlib 三个包。
openssh•本地下载:openssh-6.6p1.tar.gz(1.22 MB, 下载次数: 2470)•官网下载:/portable.htmlopenssl•本地下载:openssl-1.0.1h.tar.gz(4.27 MB, 下载次数: 2647)•官方下载:/sourcezlib•本地下载:zlib-1.2.8.tar.gz(557.71 KB, 下载次数: 3499)•官方下载:/2.部署工作目录创建用户主目录下创建工作目录:1 2$ mkdir/home/gary/work $ cd/home/gary/work在 work 目录下面创建安装目录:1 2$ mkdirinstall$ mkdirinstall/zlib $ mkdirinstall/openssl3.解压并编译把以上下载的3个安装包复制到 work 目录下,并解压,解压命令:1 2$ tarzxvf zlib-1.2.8.tar.gz$ tarzxvf openssl-1.0.1h.tar.gz$ tarzxvfopenssh-6.6p1.tar .gza )交叉编译 zlib1 2 3 $ cdzlib-1.2.8 $ ./configure--prefix=/home/gary/work/install/zlib$ viMakefile将 Makefile 中的交叉编译工具改成当前开发板使用的交叉编译工具:1 23 4 5 6 CC=/usr/local/arm-2010q1/bin/arm-none-linux-gnueabi-gcc AR=/usr/local/arm-2010q1/bin/arm-none-linux-gnueabi-ar CPP=/usr/local/arm-2010q1/bin/arm-none-linux-gnueabi-gcc LDSHARED=/usr/local/arm-2010q1/bin/arm-none-linux-gnueabi-gcc $ make$ makeinstallb )交叉编译openssl1 2 3 4$ cd../openssl-1.0.1h $ ./Configure--prefix=/home/gary/work/install/openssl os/compiler:/usr/local/ar m-2010q1/bin/arm-none-linux-gnueabi-gcc $ make $ makeinstallc )交叉编译openssh1 2 3 $ cd ../openssh-6.6p1 $ ./configure--host=arm-none-linux-gnueabi --with-libs --with-zlib=/home/gary/work/install/zlib--with-ssl-dir=/home/gary/work/install/openssl--disable-etc-default-login CC=/usr/local/arm-2010q1/bin/arm-none-linux-gnueabi-gccAR=/usr/local/arm-2010q1/bin/arm-none-linux-gnueabi-ar$ make注意:openssh 不需要make install4.操作目标板a )确保目标板上有以下目录,若没有,则新建:1 2 /usr/local/bin/usr/local/etc3 4 5/usr/libexec /var/run/var/emptyb)从PC机上将以下文件拷贝到目标板Linux系统中PC机 /home/gary/work/openssh-6.6p1/ 目录下的•scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan 共8个文件拷贝到目标板 /usr/local/bin•moduli ssh_config sshd_config 共3个文件拷贝到目标板 /usr/local/etc •sftp-server ssh-keysign 共2个文件拷贝到目标板 /usr/libexecc)生成Key文件在PC机 /work/ssh/source/openssh-6.6p1/ 目录下运行:1 2 3 4$ 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 ""$ ssh-keygen -t dsa -f ssh_host_ed25519_key-N ""将生成的 ssh_host_*_key 这4个文件copy到目标板的 /usr/local/etc/ 目录下。
sshd参数范文
sshd参数范文sshd是一种常用的远程登录和文件传输协议,是Secure Shell的缩写。
它提供了一种加密的方式来远程登录到服务器,并在客户端和服务器之间进行安全的数据传输。
在Linux系统中,sshd是OpenSSH的守护进程,用于支持SSH协议。
在本文中,将详细介绍sshd的一些常用参数及其功能。
1. `-p`参数:用于指定sshd监听的端口号。
默认情况下,sshd监听22端口,但是可以通过该参数来修改监听的端口号。
例如,`sshd -p 2222`将使sshd监听2222端口。
2. `-f`参数:用于指定sshd配置文件的路径。
默认情况下,sshd使用`/etc/ssh/sshd_config`文件作为其配置文件。
使用该参数可以指定不同的配置文件。
例如,`sshd -f /path/to/config`将使用`/path/to/config`作为配置文件。
3. `-D`参数:用于以调试模式启动sshd。
这将使sshd不会以守护进程的方式运行,并将调试信息输出到标准错误流中。
这对于调试sshd配置文件或解决连接问题非常有用。
4. `-o`参数:用于指定额外的配置选项。
例如,`sshd -oLogLevel=VERBOSE`将以更详细的日志级别启动sshd。
5. `-K`参数:用于检查sshd配置文件的语法是否正确。
它会检查语法错误,并在输出中显示相关错误信息。
例如,`sshd -K`将检查sshd配置文件的语法。
6. `-h`参数:用于显示sshd的帮助信息,包括可用的参数和其功能。
7.`-C`参数:用于压缩连接。
该参数将启用压缩算法来减少数据传输的大小。
这对于端口带宽较小或连接较慢的环境非常有用。
8.`-q`参数:用于启用静默模式。
该参数将禁用所有警告和错误消息的显示。
这对于批量操作或脚本执行时非常有用。
9. `-T`参数:用于测试配置文件中是否启用了TCP封装。
它会检查配置文件来查看是否启用了SSH协议的封装。
sshd-scp用法 -回复
sshd-scp用法-回复SSHD(Secure Shell Daemon)是一种在计算机网络中提供安全远程登录功能的软件。
而SSHDSCP是其衍生工具之一,用于在不同计算机之间进行文件的传输。
本文将详细介绍SSHDSCP的用法步骤,并提供一些实际应用场景。
第一步:安装和配置SSHD在开始使用SSHDSCP之前,首先需要在服务器(发送方)和客户端(接收方)上安装和配置SSHD。
这涉及到以下几个步骤:1. 在服务器和客户端上安装OpenSSH软件包。
这可以通过包管理器,如apt、yum或dnf,在Linux系统上轻松完成。
对于Windows系统,可以从OpenSSH官方网站下载并安装适用于Windows的OpenSSH。
2. 在服务器上,编辑SSH服务器配置文件(通常是/etc/ssh/sshd_config),以允许SCP传输。
找到以下行并取消注释(去除行首的注释符号#):AllowSCP yes3. 重启SSH服务器,以使更改生效。
在大多数Linux系统上,可以使用以下命令完成:systemctl restart sshd4. 在客户端上,也要确保安装了OpenSSH软件包。
第二步:使用SSHDSCP传输文件一旦完成了SSHD的安装和配置,就可以使用SSHDSCP进行文件传输了。
以下是使用SSHDSCP进行文件传输的基本步骤:1. 打开终端/命令提示符,并使用以下命令启动SSH会话:ssh usernameip_address这里的username是目标服务器上的用户名,ip_address是目标服务器的IP地址。
2. 输入目标服务器上的用户名的密码,以建立与目标服务器的连接。
如果已经设置了SSH密钥对,还可以选择使用SSH密钥进行身份验证。
3. 导航到要传输文件的目录。
例如,要将本地文件夹中的文件传输到目标服务器的/home/username目录中,可以使用以下命令:cd /path/to/local/folder4. 使用以下命令从本地系统上传文件到目标服务器:scp filename usernameip_address:/path/to/destination/folder这里的filename是要传输的文件名,以及目标服务器的用户名、IP地址和目标文件夹的路径。
sshd 代码解析
SSH守护进程(sshd)是一个用于提供安全远程登录服务的应用程序。
以下是对SSH守护进程代码的解析:1. 初始化:在启动SSH守护进程时,首先需要执行一些初始化操作,例如加载配置文件、设置日志记录级别等。
这些操作通常在`main()`函数中完成。
2. 监听端口:SSH守护进程需要监听一个特定的端口,以便接收客户端的连接请求。
这个端口号可以在配置文件中指定。
监听端口的操作通常在`main()`函数中完成。
3. 处理连接:当客户端发起连接请求时,SSH守护进程会接受该连接,并创建一个新的线程来处理与该客户端的通信。
处理连接的操作通常在`handle_connection()`函数中完成。
4. 身份验证:SSH协议要求客户端和服务器之间进行身份验证,以确保通信的安全性。
身份验证的过程包括用户名和密码的验证、公钥认证等。
验证过程通常在`handle_connection()`函数中完成。
5. 加密通信:为了保护通信内容的安全,SSH协议使用加密算法对通信数据进行加密。
加密算法的选择和配置可以在配置文件中指定。
加密通信的过程通常在`handle_connection()`函数中完成。
6. 命令执行:一旦客户端成功通过身份验证并建立加密连接,SSH守护进程就可以执行客户端发送的命令。
命令执行的过程通常在`handle_connection()`函数中完成。
7. 关闭连接:当客户端断开连接或命令执行完成后,SSH守护进程需要关闭与该客户端的连接,并释放相关资源。
关闭连接的过程通常在`handle_connection()`函数中完成。
8. 错误处理:在SSH守护进程的运行过程中,可能会遇到各种错误情况,如网络故障、身份验证失败等。
为了确保系统的稳定性和安全性,SSH守护进程需要对这些错误情况进行适当的处理。
错误处理的过程通常在`main()`函数和其他相关函数中完成。
sshd-scp用法 -回复
sshd-scp用法-回复SSHDSCP(Secure Shell Distributed SCP)是一个用于在Linux系统之间进行安全文件传输的工具。
它是基于SSH协议的,提供了对加密通信和身份验证的支持,确保文件在传输过程中的安全性。
SSHDSCP的用法非常简单,只需按照一定的语法格式输入命令即可开始传输文件。
下面将逐步介绍SSHDSCP的用法,以帮助读者更好地理解并使用它。
第一步,安装SSH服务。
在使用SSHDSCP之前,需要确保系统中已经安装了SSH服务。
对于大多数Linux发行版来说,默认情况下都会安装SSH服务,但如果系统中尚未安装或启用SSH服务,可以通过在终端中执行以下命令来进行安装:sudo apt-get install openssh-server此命令将使用apt-get包管理器来安装openssh-server软件包,该软件包包含SSH服务所需的所有组件。
第二步,使用sshdscp命令传输文件。
一旦确保SSH服务已安装并正在运行,就可以通过sshdscp命令开始文件传输。
SSHDSCP的一般语法格式如下:sshdscp [选项] [来源文件] [目标]其中,选项是可选的,可以根据需要选择性地使用。
来源文件是要传输的本地文件的路径和文件名,目标是指远程系统上存储文件的路径。
例如,要将本地文件example.txt传输到远程系统的/ home / user目录中,可以使用以下命令:sshdscp example.txt user@remote:/home/user在执行该命令后,系统将提示您输入远程系统的密码,以便进行身份验证。
一旦验证成功,文件传输将开始,并在传输完成后显示相关信息。
第三步,使用其他常用选项。
SSHDSCP还提供了一些常用选项,以进一步控制文件传输过程。
这些选项包括:- -r:递归地传输目录及其内容。
- -P <端口号>:使用指定的端口号进行SSH连接。
sshd pam 工作流程
sshd pam 工作流程sshd (Secure Shell Daemon) 是一个用于远程登录的安全协议,而 PAM (Pluggable Authentication Modules) 是一个用于对用户进行身份验证的框架。
当用户尝试通过 SSH 连接到服务器时,sshd 会调用 PAM 来进行身份验证和授权。
下面我将从多个角度来解释sshd 和 PAM 的工作流程。
首先,当用户尝试通过 SSH 连接到服务器时,sshd 会接收到连接请求并启动身份验证过程。
sshd 会调用 PAM 库来进行身份验证。
PAM 会根据配置文件中的规则来确定使用哪种身份验证方式,比如密码验证、密钥验证等。
其次,PAM 会根据配置文件中的设定,选择相应的认证模块来验证用户身份。
这些模块可以是基于密码的、基于密钥的,甚至可以是双因素认证等。
每个模块都有自己的验证流程,比如检查密码是否正确、验证 SSH 密钥是否有效等。
接下来,PAM 会根据认证模块的返回结果来决定用户是否被授权登录。
如果所有的认证模块都返回成功,那么用户将被授权登录到系统中。
否则,用户将被拒绝登录,并且会收到相应的错误信息。
需要注意的是,PAM 可以通过配置文件进行高度定制,管理员可以根据自己的需求来配置认证规则,比如限制登录次数、设置登录时间等。
这使得系统管理员能够根据实际需求来灵活配置用户的身份验证流程。
总的来说,sshd 通过调用 PAM 来进行用户身份验证和授权,PAM 可以根据管理员的配置来选择合适的认证模块,并根据其返回结果来决定用户是否被允许登录。
这样的设计使得系统管理员能够根据实际需求来灵活配置用户的身份验证流程,从而提高系统的安全性和灵活性。
openssh服务器移植到2440处理器上
移植openssh服务器到2440处理器上作者:刘溯奇日期:2009-1-15 地点:南宁师专数计系移植opensshd到友善之臂mini2440开发板上(CPU是s3c2440)1. 环境硬件环境:Host:X86PCTarget:友善之臂mini2440开发板软件环境:Host:VMware虚拟机下的redhat linux 9.0(完全安装)Target:arm-linux kernel:linux-2.6.13Crosstool: arm-linux-gcc-3.4.12.准备以下源码包(下载)下载zlib: /zlib-1.2.3.tar.gz下载ssl: /source/openssl-0.9.8e.tar.gz下载ssh: /openssh/portable/openssh-4.6p1.tar.gz3.交叉编译(1) 准备工作在redhat linux 9.0下新建工作目录mkdir /ssh 工作目录cd /ssh 进入工作目录mkdir compressed install source 再新建三个目录mkdir intall/zlib-1.2.3 install/openssl-0.9.8ecompressed 用于存放源码包install 软件安装目录source 源码包解压目录说明:把第2步下载的源码包放到compressed目录中(2) 交叉编译zlibcd /ssh/compressed/tar xzvf zlib-1.2.3.tar.gz -C ../sourcecd ../source/zlib-1.2.3./configure --prefix=/ssh/install/zlib-1.2.3修改Makefile:CC=gcc 改为:CROSS=/usr/local/arm/3.4.1/bin/arm-linux-CC=$(CROSS)gccLDSHARED=gcc 改为: LDSHARED=$(CROSS)gccCPP=gcc -E 改为: CPP=$(CROSS)gcc -EAR=ar rc 改为: AR=$(CROSS)ar rcmakemake install(3) 交叉编译opensslcd /ssh/compressed/tar zxvf openssl-0.9.8e.tar.gz -C ../sourcecd ../source/openssl-0.9.8e./Configure --prefix=/ssh/install/openssl-0.9.8e os/compiler:/usr/local/arm/3.4.1/bin/arm-linux-gccmakemake install(4)交叉编译opensshcd /ssh/compressedtar zxvf openssh-4.6p1.tar.gz –C ../sourcecd ../source/openssh-4.6p1./configure --host=arm-linux --with-libs --with-zlib=/ssh/install/zlib-1.2.3--with-ssl-dir=/ssh/install/openssl-0.9.8e--disable-etc-default-login CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-armake##不要make install4. 安装(1) 将 openssh-4.6p1目录下的 sshd 拷贝到目标板的/usr/sbin目录下(2) 再拷贝scp sftp ssh ssh-add ssh-agent ssh-keygenssh-keyscan 到目标板/usr/local/bin目录下(3) 拷贝 sftp-server ssh-keysign 到/usr/local/libexec目录下(4) 在目标板下:mkdir -p /usr/local/etc/mkdir -p /var/run;mkdir -p /var/empty/sshdchmod 755 /var/empty然后将openssh-4.6p1下的sshd_config, ssh_config 拷贝到/usr/local/etc/目录下(5)在主机上:(openssh-4.6p1目录下),用超级终端运行如下命令ssh-keygen -t rsa1 -f ssh_host_key -N ""ssh-keygen -t rsa -f ssh_host_rsa_key -N ""ssh-keygen -t dsa -f ssh_host_dsa_key -N ""将生存的ssh_host_* 6个文件(即ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pu b ssh_host_rsa_key ssh_host_rsa_key.pub )拷贝到目标板的/usr/local/etc/目录下(6)修改目标板根文件系统/etc目录下的 passwd 和group文件,添加上sshd用户和组,步骤如下:cd /etcvi passwd在打开的passwd文件修改后如下所示:root::0:0:root:/:/bin/shbin:*:1:1:bin:/bin:daemon:*:2:2:daemon:/sbin:nobody:*:99:99:Nobody:/:sshd:*:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologi n―――添加sshd用户vi group在打开的group文件修改后如下所示:root:*:0:daemon:*:1:bin:*:2:sys:*:3:adm:*:4:tty:*:5:disk:*:6:lp:*:7:lpmail:*:8:news:*:9:uucp:*:10:proxy:*:13:kmem:*:15:dialout:*:20:fax:*:21:voice:*:22:cdrom:*:24:floppy:*:25:tape:*:26:sshd:*:74:-------------添加sshd组sudo:*:27:audio:*:29:ppp:x:99:(7)修改sshd_config文件如下选项,其他按默认配置:# HostKey for protocol version 1HostKey /usr/local/etc/ssh_host_key# HostKeys for protocol version 2HostKey /usr/local/etc/ssh_host_rsa_keyHostKey /usr/local/etc/ssh_host_dsa_keyPermitRootLogin yes――允许根用户登陆PermitEmptyPasswords yes――允许使用空密码,即不需要密码UsePrivilegeSeparation no――把安全级别降低,因为不会连接互联网# override default of no subsystemsSubsystem sftp /usr/local/libexec/sftp-server ――指定sftp服务路径,否则将不能启动sftp服务,将不能进行文件的上传和下载(8)在开发板上(即目标板)启动sshd此时的你只要等开发板启动好之后启动sshd服务了,使用绝对路径来启动。
sshd安装加固
该操作在新系统部署前设置完毕端口参考:端口开放定义:系统本地开放端口的范围:(默认30000多到60000多)[root@linux2 ~]# vim /etc/sysctl.confnet.ipv4.ip_local_port_range = 10240 65000 #建议不要小于10000 ,因为本机很可能会有类似如8080这样的服务防火墙参考:# firewall-cmd --permanent --add-port=2280/tcp --zone=public# firewall-cmd --permanent --add-port=2280/udp --zone=publicsuccess# firewall-cmd --reloadsuccessssh安全加固#yum install opensshopenssh-devel -y# systemctl start sshd.service# systemctl enable sshd.service1、编辑/etc/ssh/sshd_config这个文件1.1、修改默认访问端口#Port 22Port 2280# sed -i '/^#Port/s/#//g' /etc/ssh/sshd_config# sed -i '/^Port/s/22/2280/g' /etc/ssh/sshd_config# grep -i '^Port' /etc/ssh/sshd_config1.2、设置允许登录ssh服务器的用户添加远程用户# useraddrmsxcp# echo "wXEN**********" | passwd --stdinrmsxcp#vim /etc/ssh/sshd_configAllowUsersrmsxcp# echo "AllowUsersrmsxcp root" >> /etc/ssh/sshd_config# grep -i 'AllowUsers' /etc/ssh/sshd_config完成1.1、1.2测试看看是否可以使用# systemctl restart sshd.service1.3、禁止root登录#PermitRootLogin yesPermitRootLogin no# sed -i '/^#PermitRootLogin/s/#//g' /etc/ssh/sshd_config# sed -i '/^PermitRootLogin/s/yes/no/g' /etc/ssh/sshd_config# grep -i 'PermitRootLogin' /etc/ssh/sshd_config1.4、修改最大登录尝试次数#MaxAuthTries 61.5、禁用密码验证,开启秘钥认真1.5.1、无id_rsa密码配置:(1)普通用户或管理员用户生成ssh的秘钥:ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/rmsxcp/.ssh/id_rsa): Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/rmsxcp/.ssh/id_rsa. Your public key has been saved in /home/rmsxcp/.ssh/id_rsa.pub. The key fingerprint is:8b:c2:97:52:b8:e0:97:cc:84:54:ef:2e:5c:6b:1b:bb rmsxcp@ecloud The key's randomart image is:+--[ RSA 2048]----+| . || . . || . . || . . o || oo + S || . B * + . || . % O . || . * + || E. |+-----------------+[root@ecloud~]#cp /home/rmsxcp/.ssh/id_rsaid_rsa id_rsa.pub[root@ecloud~]#cp /home/rmsxcp/.ssh/id_rsa /home/rmsxcp/[root@ecloud~]#chmod +755 /home/rmsxcp/id_rsa客户端下载来后,删除。
(整理)移植sshd到JK2410开发板
移植sshd到JK2410开发板1.引言SSH是由芬兰的一家公司开发出来的,但是由于版权和加密算法的限制,openssh作为一种安全的网络服务应用程序在业界被广泛应用。
Openssh是ssh的代替软件而且免费。
在上篇文档《移植OProfile到JK2410开发板》中有提到,Montavista 公司提供的应用程序开发和系统分析工具devrocket在调试和分析性能时需要在开发板和主机之间建立一条连接,通过ssh协议通信。
由于JK2410开发板上没有配置sshd伺服程序,所以需要将sshd移植到JK2410开发板上。
2.环境硬件环境:Host:X86 PCTarget:JK2410开发板软件环境:Host:VMware 6OS:CentOS 5Strace 调试工具Target:OS:linux-2.6.18 pro500RootFS: initrd-edwin-25M.imgStrace 调试工具3.移植步骤源码包:openssh-4.6p1.tar.gz /portable.htmlopenssl-0.9.8e.tar.gz /sourcezlib-1.2.3.tar.tar /编译工具arm-9tdmi-linux-gnu-gccarm-9tdmi-linux-gnu-g++3.1. 交叉编译在/work目下面创建ssh目录# mkdir /work/lib ----〉共享库目录,通过nfs挂载# mkdir /work/ssh -----〉工作目录# cd /work/ssh# mkdir compressed install source -----〉compressed 用于存放源码包Install 软件安装目录Source 源码包解压目录#mv tarpakgs/openssh-4.6p1.tar.gz /work/ssh/compressed#mv tarpakgs/openssl-0.9.8e.tar.gz /work/ssh/compressed#mv tarpakgs/zlib-1.2.3.tar.tar /work/ssh/compressed交叉编译zlib# cd /work/ssh/compressed/# tar xvf zlib-1.2.3.tar.tar -C ../source# cd ../source/zlib-1.2.3# ./configure --prefix=/work/ssh/install/zlib-1.2.3# vim MakefileCC=arm-9tdmi-linux-gnu-gccAR=arm-9tdmi-linux-gnu-ar rcCPP =arm-9tdmi-linux-gnu-gcc -ELDSHARED=arm-9tdmi-linux-gnu-gcc# make# make install交叉编译openssl# cd /work/ssh/compressed/# tar zxvf openssl-0.9.8e.tar.gz -C ../source# cd ../source/openssl-0.9.8e# ./Configure --prefix=/work/ssh/install/openssl-0.9.8e os/compiler:arm-9tdmi-linux-gnu-gcc//这个应该是参考的文档中CC=arm-none-linux-gnueabi-gcc CFLAGS="-I/xxx/zlib/include" LDFLAGS="-L/xxx/zlib/lib" ./Configure --prefix=/xxx/openssl os/compiler:linux-armv4# make# make install交叉编译openssh# cd /work/ssh/compressed# tar zxvf openssh-4.6p1.tar.gz –C ../source# cd ../source/ openssh-4.6p1#./configure --host=arm-9tdmi-linux-gnu --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-loginCC=arm-9tdmi-linux-gnu-gcc AR=arm-9tdmi-linux-gnu-ar打印出如下信息:OpenSSH has been configured with the following options:User binaries: /usr/local/binSystem binaries: /usr/local/sbinConfiguration files: /usr/local/etcAskpass program: /usr/local/libexec/ssh-askpassManual pages: /usr/local/share/man/manXPID file: /var/runPrivilege separation chroot path: /var/emptysshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binManpage format: docPAM support: noOSF SIA support: noKerberosV support: noSELinux support: noSmartcard support: noS/KEY support: noTCP Wrappers support: noMD5 password support: nolibedit support: noSolaris process contract support: noIP address in $DISPLAY hack: noTranslate v4 in v6 hack: yesBSD Auth support: noRandom number source: OpenSSL internal ONL YHost: arm-9tdmi-linux-gnuCompiler: arm-9tdmi-linux-gnu-gccCompiler flags: -g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -std=gnu99 Preprocessor flags: -I/work/ssh/install/openssl-0.9.8e/include-I/work/ssh/install/zlib-1.2.3/includeLinker flags: -L/work/ssh/install/openssl-0.9.8e/lib-L/work/ssh/install/zlib-1.2.3/libLibraries: -lresolv -lcrypto -lutil -lz -lnsl -lcrypt3.2. 安装sshd按照上面打印出的信息在根文件系统中建立相应的目录并把相应的文件拷贝进去。
java sshd 用法
java sshd 用法摘要:1.Java SSHD 简介2.Java SSHD 的用法a.安装Java SSHDb.配置Java SSHDc.启动和停止Java SSHDd.Java SSHD 常用命令3.Java SSHD 的优势和应用场景4.Java SSHD 的常见问题及解决方法正文:Java SSHD(Secure Shell Daemon)是一个基于Java 实现的SSH 服务器,它可以在Java 虚拟机(JVM)上运行,为用户提供安全、可靠的远程登录和管理功能。
以下是Java SSHD 的用法:1.安装Java SSHD首先,您需要在您的Java 应用程序中添加Java SSHD 的依赖。
如果您使用的是Maven 项目,可以在pom.xml 文件中添加以下依赖:```xml<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency>```2.配置Java SSHD在启动Java SSHD 之前,您需要创建一个配置文件,该文件包含Java SSHD 的配置信息,如端口号、用户名、密码等。
配置文件通常为`sshd_config`,其内容如下:```# 端口号Port 22# 用户名User username# 密码PasswordAuthentication yes# 是否允许远程执行命令AllowTcpForwarding yes```请根据您的实际需求修改配置文件中的参数。
3.启动和停止Java SSHD要启动Java SSHD,您可以使用以下代码:```javaimport com.jcraft.jsch.JSch;import com.jcraft.jsch.Session;public class SSHDaemon {public static void main(String[] args) throws Exception { JSch jsch = new JSch();Session session = null;// 加载配置文件jsch.loadConfig("config.properties");// 启动SSHDsession = jsch.getSession("username", "localhost", 22);session.setPassword("password");session.setConfig("StrictHostKeyChecking", "no");session.connect();// 执行命令// ...// 断开连接session.disconnect();}}```要停止Java SSHD,您可以使用以下代码:```java// 断开连接session.disconnect();```4.Java SSHD 常用命令Java SSHD 提供了许多常用的命令,如`ls`、`cd`、`pwd`等。
sshd使用
sshd使⽤sshd服务1.sshd介绍sshd为secure shell的简称;可以通过⽹络在主机中开机shell的服务连接⽅式(在客户端):ssh username@ip #⽂本模式ssh -X username@ip #可以在链接成功后开启图形界⾯注意:第⼀次链接陌⽣主机是要建⽴认证⽂件,然后会询问是否建⽴,需要输⼊yes再次链接此台主机时,因为已经⽣成~/.ssh/know_hosts⽂件所以不需要再次输⼊yes远程复制:格式 scp file root@id:dir(⽂件的上传)scp root@if:/dir file(⽂件的下载)⽰例:把177主机下/mnt/file1⽂件上传到 172.25.254.97主机的/root/Desktop/⽬录下: [root@localhost mnt]# ls niu/file1 file2 file3 file4 file5[root@localhost mnt]# scp niu/file1 root@172.25.254.97:/root/Desktop/file1 100% 0 0.0KB/s 00:00此时可以在97主机下的桌⾯上看到file1:[root@localhost ~]# cd /root/Desktop/[root@localhost Desktop]# lsfile1⽰例:把97主机桌⾯下的file⽂件下载到177主机的/mnt/⽬录下:[root@localhost ~]# scp root@172.25.254.97:/root/Desktop/file /mnt/file 100% 0 0.0KB/s 00:00此时可以在177主机上/mnt/⽬录下可以看到file⽂件[root@localhost ~]# ls /mnt/file niu root@172.25.254.972.sshd 的key认证【1】⽣成认证KEY⽣成密钥的命令:ssh-keygen[root@localhost ~]# rm -rf .ssh/[root@localhost ~]# ls -a. .bash_logout .config Downloads Music Templates.. .bash_profile .cshrc .esd_auth Pictures Videosanaconda-ks.cfg .bashrc Desktop .ICEauthority Public .viminfo.bash_history .cache Documents .local .tcshrc[root@localhost ~]# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:8c:23:ee:39:11:6b:e6:af:a3:76:b1:00:a5:6e:d1:d3 root@localhostThe key's randomart image is:+--[ RSA 2048]----+| || . || o. . ||o. o.E o ||... ooo S || o..*. . ||. =.+ || ..*. || ..o+=. |+-----------------+【2】加密服务使⽤命令:ssh-copy-id -i /root/.ssh/id_rsa.pub root@id[root@localhost ~]# cd .ssh/[root@localhost .ssh]# lsid_rsa id_rsa.pub[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.97The authenticity of host '172.25.254.97 (172.25.254.97)' can't be established.ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.Are you sure you want to continue connecting (yes/no)? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@172.25.254.97's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'root@172.25.254.97'"and check to make sure that only the key(s) you wanted were added.[root@localhost .ssh]# lsauthorized_keys id_rsa id_rsa.pub known_hosts(此时authorized_keys⽂件,⽣成代表97主机加密成功;id-rsa为钥匙,id_rsa.pub为锁)【3】分发钥匙使⽤命令: scp /root/.ssh/id_rsa root@id:/root/.ssh/[root@localhost .ssh]# lsauthorized_keys id_rsa id_rsa.pub known_hosts[root@localhost .ssh]# scp id_rsa root@172.25.254.177:/root/.ssh/The authenticity of host '172.25.254.177 (172.25.254.177)' can't be established.ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '172.25.254.177' (ECDSA) to the list of known hosts.root@172.25.254.177's password:id_rsa 100% 1679 1.6KB/s 00:00**在177主机下进⾏验证:[root@localhost ~]# ls .ssh/id_rsa known_hosts【4】测试在客户主机中(172.25.254.177)输⼊命令:ssh root@172.25.254.97[root@localhost ~]# ssh root@172.25.254.97Last login: Wed Jul 25 23:10:43 2018此时不需要进⾏root⽤户的登陆,直接连接成功3.sshd的安全设定PasswordAuthentication yes|no ##是否允许⽤户通过登陆系统的密码做sshd的认证,(在78⾏也可登录其他⽤户密码) PermitRootLogin yes|no ##是否允许root⽤户通过sshd服务的认证(48⾏)Allowusers student westos ##设定⽤户⽩名单,⽩名单出现默认不再名单中的⽤户不能使⽤sshdDenyusers westos ##设定⽤户⿊名单,⿊名单出现默认不再名单中的⽤户可以使⽤sshd注意:在服务端修改⽂件的配置:vim /etc/ssh/sshd_config配置完成之后要重启服务:systemctl restart sshd.service此⽂为装载。
关于SSH服务的移植
关于SSH服务的移植(一)移植准备以ubuntu作为开发平台,并设置好开发环境,如:交叉编译工具链等。
当前使用的用户(ubuntu)。
以机顶盒为要移植的平台,其使用的用户是sunniwell。
(二)交叉编译SSH服务a)下载zlib软件包,并进行交叉编译。
因为zlib软件包有SSH的一个依赖库,所以要先交叉编译它,生成相应的库和文件。
$wget /software/zlib-1.2.3.tar.gz$tar -zxvf zlib-1.2.3.tar.gz由于zlib 库的configure 脚本不支持交叉编译选项,只好自己动手了,手动临时把gcc 、ln、ar修改成指向我们的交叉编译器mipsel-linux-gcc、mipsel -linux-ld、mipsel -linux-ar。
$cd /usr/bin$mv gcc gcc_back$ln –s /opt/toolchains/ crosstools_sf-linux-2.6.12.0_gcc3.4.6-20_uclibc-0.9.28-\ 20050817-20070131/bin / mipsel -linux-gcc ./gcc$mv ld ld_back$ln –s /opt/toolchains/ crosstools_sf-linux-2.6.12.0_gcc3.4.6-20_uclibc-0.9.28-\ 20050817-20070131/bin / mipsel -linux-ld ./ld$mv ar ar_back$ln –s /opt/toolchains/ crosstools_sf-linux-2.6.12.0_gcc3.4.6-20_uclibc-0.9.28-\ 20050817-20070131/bin / mipsel -linux-ar ./ar注意:这里是通过链接的方法更改编译器,也可以把所有Makefile里的gcc、ln、ar手动改成mipsel-linux-gcc、mipsel -linux-ld、mipsel -linux-ar,但这样比较慢。
SSH命令的三种代理功能(-L-R-D)
SSH命令的三种代理功能(-L-R-D)ssh 命令除了登陆外还有三种代理功能:正向代理(-L):相当于 iptable 的 port forwarding反向代理(-R):相当于 frp 或者 ngroksocks5 代理(-D):相当于 ss/ssr如要长期⾼效的服务,应使⽤对应的专⽤软件。
如没法安装软件,⽐如当你处在限制环境下想要访问下某个不可达到的⽬标,或者某个临时需求,那么 ssh 就是你的兜底⽅案。
正向代理:所谓“正向代理”就是在本地启动端⼝,把本地端⼝数据转发到远端。
⽤法1:远程端⼝映射到其他机器HostB 上启动⼀个 PortB 端⼝,映射到 HostC:PortC 上,在 HostB 上运⾏:HostB$ ssh -L 0.0.0.0:PortB:HostC:PortC user@HostC这时访问 HostB:PortB 相当于访问 HostC:PortC(和 iptable 的 port-forwarding 类似)。
⽤法2:本地端⼝通过跳板映射到其他机器HostA 上启动⼀个 PortA 端⼝,通过 HostB 转发到 HostC:PortC上,在 HostA 上运⾏:HostA$ ssh -L 0.0.0.0:PortA:HostC:PortC user@HostB这时访问 HostA:PortA 相当于访问 HostC:PortC。
两种⽤法的区别是,第⼀种⽤法本地到跳板机 HostB 的数据是明⽂的,⽽第⼆种⽤法⼀般本地就是 HostA,访问本地的 PortA,数据被 ssh 加密传输给 HostB ⼜转发给 HostC:PortC。
反向代理:所谓“反向代理”就是让远端启动端⼝,把远端端⼝数据转发到本地。
HostA 将⾃⼰可以访问的 HostB:PortB 暴露给外⽹服务器 HostC:PortC,在 HostA 上运⾏:HostA$ ssh -R HostC:PortC:HostB:PortB user@HostC那么链接 HostC:PortC 就相当于链接 HostB:PortB。
sshd命令参数
sshd命令是SSH(Secure Shell)服务器守护进程的命令行工具,用于启动、终止和管理SSH服务器。
以下是一些常用的sshd命令参数:
1. -D:以调试模式启动sshd,将输出调试信息到终端。
2. -d:以调试模式启动sshd,将输出调试信息到指定的文件。
3. -e:向终端输出调试和错误信息。
4. -f config_file:指定使用的配置文件,默认为/etc/ssh/sshd_config。
5. -h:显示命令的帮助信息。
6. -p port:指定SSH服务器监听的端口号,默认为22。
7. -q:安静模式,不输出任何信息。
8. -k:重新生成主机密钥。
9. -u len:指定待认证的用户的最大输入长度,默认为128。
10. -C:禁用掉SSH压缩。
11. -o option:设置OpenSSH的配置选项。
12. -G group:指定运行sshd的所属组。
13. -g:允许远程主机连接到本地的X11显示。
14. -i:忽略.rhosts和.hosts文件,只允许基于公钥的用户认证。
15. -s:将sshd作为独立进程启动。
这些参数可以根据需求来调整sshd命令的行为。
请注意,在使用sshd命令时,建议仔细阅读相关文档并确保具备足够的权限。
SSHD——精选推荐
SSHDSSH基本概述SSH服务协议说明SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。
确保了传递的数据安全。
SSH是专为远程登录会话和其他网络服务提供的安全性协议。
利用 SSH 协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
在默认状态下,SSH服务主要提供两个服务功能:一是提供类似telnet远程联机服务器的服务,即上面提到的SSH服务。
另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的.提供更安全的SFTP服务(vsftp,proftp)。
SSH远程服务主要功能提供远程连接服务器的服务对传输的数据进行加密远程连接方式有哪些ssh属于密文连接方式监听在本地22/tcp端口telnet属于明文连接方式监听在本地23/tcp端口ssh知识要点ssh是安全的加密协议,用于远程链接linux服务器ssh 默认端口是22,安全协议版本sshv2,出来2之外还有1(有漏洞)ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务linux ssh 客户端包括ssh 远程链接命令,以及远程拷贝scp命令等私钥和公钥ssh实现安全链接建立,利用钥匙和锁头1. 钥匙=私钥锁头=公钥,私钥可以解密公钥2. 公钥可以再网络中传输,私钥再本地主机保存SSH相关命令SSH是典型的客户端和服务端的交互模式, 客户端广泛的支持各个平台WIndows有很多工具可以支持SSH连接功能, 建议使用Xshellopenssh软件分析(与数据加密相关的软件--openssl)[root@backup ~]# rpm -ql openssh-server/etc/ssh/sshd_config --- ssh服务配置文件/usr/sbin/sshd --- ssh服务进程启动命令[root@backup ~]# rpm -ql openssh-clients/usr/bin/scp --- 远程拷贝命令/usr/bin/sftp --- 远程文件传输命令/usr/bin/slogin --- 远程登录命令/usr/bin/ssh --- 远程连接登录命令/usr/bin/ssh-copy-id --- 远程分发公钥命令ssh客户端包含ssh以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全FTP文件传输)等应用程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mkdir /dev/fb
ls -s /dev/fb0 /dev/fb/0
其中我测试的是buttons驱动,原来是没有创建节点
加上去之后,问题解决,呵呵,留个记号
SSH关于公钥认证Permission denied (publickey,gssapi-with-mic的问题
/usr/lib/libnssutil3.so
/lib/libkeyutils.so.1
/usr/lib/libkrb5support.so.0
"/lib/libsepol.so.1
libpam.so.0 ->
/lib/libc.so.6
/usr/lib/libkrb5.so.3
/usr/lib/libgssapi_krb5.so.2
(2) 再copy scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目标板/usr/local/bin目录下
copy sftp-server ssh-keysign 到/usr/local/libexec
首先确认配置文件内PasswordAuthentication no这句要为no。
(3) 在目标板下:
mkdir -p /usr/local/etc/
然后将openssh下的sshd_config,ssh_config 拷贝到该目录下
mkdir -p /var/run; mkdir -p /var/empty/sshd
)在主机上:
ssh-keygen -t rsa1 -f ssh_host_key -N ""
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
/bin/mknod /dev/pts/4 c 136 4
/bin/mknod /dev/pts/5 c 136 5
/bin/mount -t devpts devpts /dev/pts
/bin/mount -t proc none /proc
ln -s /dev/ts0 /dev/h3600_tsraw
4.测试
目标板启动sshd: # /usr/sbin/sshd
主机: $ ssh -v root@192.168.0.65
$ ./sftp -S ./ssh phil@192.168.0.78
-S 指定ssh路径。
特殊说明:
若只用sftp功能,可只需
其实可以删除不需要的一些用户。
这一步也可以这样,在目标板的passwd中添加sshd用户:
sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
在shadow中也添加对应的项就行了:
sshd:!:14069:0:99999:7:::
/lib/libselinux.so.1
/lib/libaudit.so.0
/usr/lib/libfipscheck.so.1
/lib/libresolv.so.2
/lib/libcrypto.so.6
/lib/libutil.so.1
/usr/lib/libz.so.1
etc/init.d/rcS 中查看区别
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
将生存的 ssh_host_* 4个文件copy到目标板的 /usr/local/etc/目录下
(5) 添加用户:
将主机上 /etc/目下的 passwd, shadow, group 三个文件copy到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh
libnsl.so.1
libutil.so.1
libz.so.1
sftp
ssh
五个程序即可。
上位机有winscp访问的时候要选scp,不能选sftp
truss strace ltrace Linux下软件诊断
libfipscheck.so.1 ->
libz.so.1.2.5 拷贝到目标板 /lib/目录下,然后建立连接
对比发现,我的rcS中少了下面几行
mkdir /dev/pts
/bin/mknod /dev/pts/0 c 136 0
/bin/mknod /dev/pts/1 c 136 1
/bin/mknod /dev/pts/2 c 136 2
/bin/mknod /dev/pts/3 c 136 3
/lib/libcrypt.so.1"
/lib/libnsl.so.1
/usr/lib/libz.so.1
/lib/libutil.so.1
/lib/libcr
ypto.so.6
/etc/ld.so.preload
/lib/libwrap.so.0
/lib/libpam.so.0
/lib/libdl.so.2
3.1在目标板上建立以下目录:
/usr/local/bin/
/usr/local/sbin/
/usr/local/etc/
/usr/local/libexec/
/var/run/
/var/empty/
#make
#不要make install
3. 安装
(1) 将 openssh-5.5p1目录下的 sshd 拷贝到 目标板的/usr/sbin目录下
ln -s libz.so.1.2.5 libz.so.1
libwrap.so.1 -> /lib/libwrap.so.0.7.6
/lib/libpthread.so.0
/usr/lib/libnspr4.so
/usr/lib/libplds4.so
/usr/lib/libplc4.so