SSH簡介
SSH 為 Secure Shell 的縮寫,由 IETF 的網(wǎng)絡小組(Network Working Group)所制定,為建立在應用層基礎上的安全協(xié)議。通過對密碼進行加密傳輸驗證,可在不安全的網(wǎng)絡中對網(wǎng)絡服務提供安全的傳輸環(huán)境,實現(xiàn)ssh客戶端和ssh服務器端的連接。在Linux類的設備或相關設置中,要實現(xiàn)修改網(wǎng)絡、遠程控制之類的操作,幾乎都會涉及到SSH操作。
OpenSSH 是 SSH (Secure SHell) 協(xié)議的免費開源實現(xiàn),提供了服務端后臺程序和客戶端工具,用來加密遠程控制和文件傳輸過程中的數(shù)據(jù)。
開發(fā)板SSH服務移植
openssh依賴于zlib庫和openssl庫,所以安裝openssh需要安裝編譯三個組件,分別為zlib、openssl和openssh。
#下載地址
zlib:http://www.zlib.net/
openssl:https://www.openssl.org/source/
openssh:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
zlib編譯
1.下載zlib庫
wget http://www.zlib.net/zlib-1.2.12.tar.gz
2.解壓zlib庫
tar -zxf zlib-1.2.12.tar.gz
3.編譯zlib
首先新建一個文件夾來存放編譯結(jié)果
mkdir zlib
進入zlib源碼目錄,配置編譯器選項,例如:
export CC=arm-linux-gnueabihf-gcc
export LD=arm-linux-gnueabihf-ld
export AD=arm-linux-gnueabihf-as
配置編譯路徑
./configure --prefix=/home/qiyang/imx6ull/openssh/zlib
此時生成一個Makefile文件,我們需要修改Makefile指定與路徑無關,在如圖所示位置添加-fPIC
最后執(zhí)行make && make install命令,進行編譯安裝;并將編譯出來的結(jié)果拷貝到開發(fā)板的/lib目錄下。
openssl編譯
1.下載openssl
wget https://www.openssl.org/source/openssl-3.0.2.tar.gz
2.解壓openssl庫
tar -zxf openssl-3.0.2.tar.gz
3.編譯openssl
首先建立一個文件夾存放編譯結(jié)果
mkdir openssl
配置編譯器
export CROSS_COMPILE=arm-linux-gnueabihf-
配置編譯路徑
./Configure linux-armv4 shared no-asm --prefix=/home/qiyang/imx6ull/openssh/openssl
最后執(zhí)行make && make install命令,進行編譯安裝;并將編譯出來的結(jié)果拷貝到開發(fā)板的/lib目錄下。
openssh編譯
1.下載openssh
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.9p1.tar.gz
2.解壓
tar -zxf openssh-8.9.tar.gz
3.編譯openssh
配置
./configure --host=arm-linux-gnueabihf --with-libs --with-zlib=/home/qiyang/imx6ull/openssh/zlib --with-ssl-dir=/home/qiyang/imx6ull/openssh/openssl --disable-etcdefault-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar
最后make,配置編譯器和zlib、openssl庫的目錄。
4.安裝
首先在開發(fā)板上創(chuàng)建以下目錄
mkdir -p /usr/local/bin
mkdir -p /usr/local/sbin
mkdir -p /usr/local/libexec/
mkdir -p /usr/local/etc
mkdir -p /var/run
mkdir -p /var/empty/
將編譯完成的文件分別復制到開發(fā)板目錄下。
將scp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan復制到/usr/local/bin目錄下;
將sshd復制到/usr/local/sbin目錄下;
將moduli、ssh_config、sshd_config復制到/usr/local/etc目錄下;
將sftp-server、ssh-keysign復制到 /usr/local/libexec目錄下;
5.修改passwd
在/etc/passwd 中添加下面這一行
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
6.生成密鑰
在/usr/local/etc/目錄下,使用如下命令生成密鑰
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 ed25519 -f ssh_host_ed25519_key -N ""
需要給ssh和sshd添加可執(zhí)行權(quán)限,
ssh在root/usr/local/bin目錄下
chmod +x ssh
sshd在/usr/local/sbin/目錄下
chmod +x sshd
7.修改/usr/local/etc/sshd_config文件內(nèi)容
1.將PasswordAuthentication yes前的注釋#去掉;
2.將#PermitRootLogin yes前的注釋#去掉;
3.將#PermitEmptyPasswords no 修改為PermitEmptyPasswords yes
8.開啟ssh服務
如上所示執(zhí)行即可開啟sshd服務,使用ps命令可以看到該進程在運行
通過上述操作,openssh服務已經(jīng)在開發(fā)板上移植好了,此時使用電腦上的ssh工具就可以連接到開發(fā)板了。
-
開發(fā)板
+關注
關注
25文章
4949瀏覽量
97205
發(fā)布評論請先 登錄
相關推薦
評論